1-1對於順序儲存的長度為n的線性表,訪問結點和增加結點的時間複雜度分別對應為o(1)和o(n)。(2分) t
1-2對於順序儲存的長度為n的線性表,刪除第乙個元素和插入最後乙個元素的時間複雜度分別對應為o(1)和o(n)。(2分) f
1-3迴圈鍊錶不是線性表。 (2分) f
1-3答案正確(2 分)1-4順序儲存的線性表可以隨機訪問。(2分) t
1-4答案正確(2 分)1-5鏈式儲存的優點是插入、刪除元素時不會引起後續元素的移動,缺點是只能順序訪問各元素。 (2分) t
2-1在n個結點的順序表中,演算法的時間複雜度為o(1)的操作是:a (2分)
a.訪問第i個結點(1≤i≤n)和求第i個結點的直接前驅(2≤i≤n)
b.在第i個結點後插入乙個新結點(1≤i≤n)
c.刪除第i個結點(1≤i≤n)
d.將n個結點從小到大排序
2-2若某線性表最常用的操作是訪問任一指定序號的元素和在最後進行插入和刪除運算,則利用哪種儲存方式最節省時間? d (2分)
a.雙鏈表
b.單迴圈鍊錶
c.帶頭結點的雙迴圈鍊錶
d.順序表
2-3下面的敘述正確的是( )。 d (2分)
a.線性表在鏈式儲存時,查詢第i個元素的時間同i的值成反比
b.線性表在鏈式儲存時,查詢第i個元素的時間同i的值無關
c.線性表在順序儲存時,查詢第i個元素的時間同i 的值成正比
d.線性表在順序儲存時,查詢第i個元素的時間同i的值無關
2-4設h為不帶頭結點的單向鍊錶。在h的頭上插入乙個新結點t的語句是: d (2分)
a.h=t; t->next=h->next;
b.t->next=h->next; h=t;
c.h=t; t->next=h;
d.t->next=h; h=t;
2-5帶頭結點的單鏈表h為空的判定條件是: b (2分)
a.h == null;
b.h->next == null;
c.h->next == h;
d.h != null;
5-1合併兩個排序的整數陣列a和b變成乙個新的陣列。例如,給出a=,b=,則合併後的陣列為 。
#include
#include
#include
using
namespace std;
class
solution
else
while
(ia < lena)
while
(ib<
lenb
(3分)
)return result;}}
;
5-2下列**的功能是返回帶頭結點的單鏈表l的逆轉鍊錶。
list reverse
( list l )
l->next=
new_head
(3分)
;return l;
}
線性表操作練習
1 線性表練習 1 從給定順序表a中刪除元素值在x到y x y 之間的所有元素,效率要求較高。int def vector a,int n,elemtype x,elemtype y return n k 2 用不多於3n 2的平均比較次數,在乙個順序表a中找出最大的和最小的值。void maxmi...
線性表小練習
2018 3 1 資料結構 2.對於增加數採用迴圈的方法,所加數的後面數都向後移 最後的數先移 for j l length j i j l data j l data j 1 3.對於減少數採用迴圈的方法,所減數的後面數字向前移動 最先的數最先移 for i i l length i l data...
線性表練習之Josephus
利用迴圈鍊錶實現約瑟夫問題。約瑟夫問題如下 已知n個人 n 1 圍坐一圓桌周圍,從1開始順序編號。從序號為1的人開始報數,順時針數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規則重複下去,直到所有人全部出列。請問最後乙個出列的人的編號。輸入描述 一行,人數n和整數m,中間...