1. 程式人生 > >第二章作業題1-順序表

第二章作業題1-順序表

一、判斷題
1-1
對於順序儲存的長度為N的線性表,訪問結點和增加結點的時間複雜度分別對應為O(1)和O(N)。 T

1-2
若某線性表最常用的操作是存取任一指定序號的元素和在最後進行插入和刪除運算,則利用順序表儲存最節省時間。 T

時間複雜度都為O(1)

1-3
對於順序儲存的長度為N的線性表,刪除第一個元素和插入最後一個元素的時間複雜度分別對應為O(1)和O(N)。F

刪除第一個元素的時間複雜度為O(N),插入最後一個元素的時間複雜度為O(1)

1-4
(neuDS)在順序表中邏輯上相鄰的元素,其對應的物理位置也是相鄰的。 T

順序表是一種隨機儲存結構,所以邏輯相鄰的元素在物理位置上也是相鄰的

1-5
(neuDS)所謂隨機存取,就是通過首地址和元素的位序號值可以在O(1)的時間內找到指定的元素。T

1-6
(neuDS)順序儲存的線性表不支援隨機存取。 F

1-7
(neuDS)在順序表上進行插入、刪除操作時需要移動元素的個數與待插入或待刪除元素的位置無關。 F

順序表當中進行插入與刪除操作與所在位置有關

二、選擇題
2-1
對於順序儲存的長度為N的線性表,訪問結點和增加結點的時間複雜度為:B(1分)

A O(1), O(1)
B O(1), O(N)
C O(N), O(1)
D O(N), O(N)

2-2
在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-3
若某線性表最常用的操作是存取任一指定序號的元素和在最後進行插入和刪除運算,則利用哪種儲存方式最節省時間?D (2分)

A 雙鏈表
B 單迴圈連結串列
C 帶頭結點的雙迴圈連結串列
D 順序表

2-4
順序表中第一個元素的儲存地址是100,每個元素的長度為2,則第5個元素的地址是(C)。(2分)

A 100
B 105
C 108
D 110

2-5
(neuDS)線性表的順序儲存結構是一種(A) (2分)

A 隨機存取的儲存結構
B 順序存取的儲存結構
C 索引存取的儲存結構
D 雜湊存取的儲存結構

2-6
(neuDS)一個順序表所佔用的儲存空間大小與(C)無關。 (2分)

A 表的長度
B 元素的型別
C 元素的存放順序
D 元素中各欄位的型別

2-7
(neuDS)要將一個順序表{a​0,a1,……,an−1}中第i個數據元素​i(0≤i≤n-1)刪除,需要移動(B)個數據元素。 (2分)

A i
B n-i-1
C n-i
D n-i+1

2-8
用陣列表示線性表的優點是(B)。 (2分)

A 便於插入和刪除操作
B 便於隨機存取
C 可以動態地分配儲存空間
D 不需要佔用一片相鄰的儲存空間

2-9
若長度為n的線性表採用順序儲存結構,那麼刪除它的第i個數據元素之前,需要它一次向前移動(A)個數據元素。 (2分)

A n-i
B n+i
C n-i-1
D n-i+1

2-10
若長度為n的線性表採用順序結構,在第i個數據元素之前插入一個元素,需要它依次向後移動(B)個元素。 (2分)

A n-i
B n-i+1
C n-i-1
D i

2-11
線性表L=(a1, a2 ,……,an )用一維陣列表示,假定刪除線性表中任一元素的概率相同(都為1/n),則刪除一個元素平均需要移動元素的個數是(C)。 (2分)

A n/2
B (n+1)/2
C (n-1)/2
D n