2 1第二章作業1 順序表

2021-10-10 01:23:06 字數 4086 閱讀 4502

1-1

對於順序儲存的長度為n的線性表,訪問結點和增加結點的時間複雜度分別對應為o(1)和o(n)。

(1分)tf

作者ds課程組

單位浙江大學

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

(2分)tf

作者ds課程組

單位浙江大學

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

(1分)tf

作者徐鏡春

單位浙江大學

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

(1分)tf

作者徐婉珍

單位廣東東軟學院

1-5(neuds)所謂隨機訪問,就是通過首位址和元素的位序號值可以在o(1)的時間內找到指定的元素。

(1分)tf

作者徐婉珍

單位廣東東軟學院

1-6(neuds)順序儲存的線性表不支援隨機訪問。

(1分)tf

作者徐婉珍

單位廣東東軟學院

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

(1分)tf

2-1對於順序儲存的長度為n的線性表,訪問結點和增加結點的時間複雜度為:

(1分)

a.o(1), o(1)

b.o(1), o(n)

c.o(n), o(1)

d.o(n), o(n)

作者ds課程組

單位浙江大學

2-2在n個結點的順序表中,演算法的時間複雜度為o(1)的操作是:

(2分)

a.訪問第i個結點(1≤i≤n)和求第i個結點的直接前驅(2≤i≤n)

b.在第i個結點後插入乙個新結點(1≤i≤n)

c.刪除第i個結點(1≤i≤n)

d.將n個結點從小到大排序

作者ds課程組

單位浙江大學

2-3若某線性表最常用的操作是訪問任一指定序號的元素和在最後進行插入和刪除運算,則利用哪種儲存方式最節省時間?

(2分)

a.雙鏈表

b.單迴圈鍊錶

c.帶頭結點的雙迴圈鍊錶

d.順序表

作者ds課程組

單位浙江大學

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

(2分)

a.100

b.105

c.108

d.110

作者周治國

單位東北師範大學

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

(2分)

a.隨機訪問的儲存結構

b.順序訪問的儲存結構

c.索引訪問的儲存結構

d.雜湊訪問的儲存結構

作者徐婉珍

單位廣東東軟學院

2-6(neuds)乙個順序表所占用的儲存空間大小與( )無關。

(2分)

a.表的長度

b.元素的型別

c.元素的存放順序

d.元素中各字段的型別

作者徐婉珍

單位廣東東軟學院

2-7(neuds)要將乙個順序表中第i個資料元素a

​i​​ (0≤i≤n-1)刪除,需要移動( )個資料元素。

(2分)a.i

b.n-i-1

c.n-i

d.n-i+1

作者徐婉珍

單位廣東東軟學院

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

(2分)

a.便於插入和刪除操作

b.便於隨機訪問

c.可以動態地分配儲存空間

d.不需要占用一片相鄰的儲存空間

作者嚴冰

單位浙江大學城市學院

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

(2分)

a.n-i

b.n+i

c.n-i-1

d.n-i+1

作者嚴冰

單位浙江大學城市學院

2-10

若長度為n的線性表採用順序結構,在第i個資料元素之前插入乙個元素,需要它依次向後移動()個元素。

(2分)

a.n-i

b.n-i+1

c.n-i-1d.i

作者嚴冰

單位浙江大學城市學院

2-11

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

(2分)

a.n/2

b.(n+1)/2

c.(n-1)/2d.n

6-1 順序表建立和就地逆置 (10分)

本題要求實現順序表的建立和就地逆置操作函式。l是乙個順序表,函式listcreate_sq(sqlist &l)用於建立乙個順序表,函式listreverse_sq(sqlist &l)是在不引入輔助陣列的前提下將順序表中的元素進行逆置,如原順序表元素依次為1,2,3,4,則逆置後為4,3,2,1。

函式介面定義:

status listcreate_sq(sqlist &l);

void listreverse_sq(sqlist &l);

裁判測試程式樣例:

//庫函式標頭檔案包含

#include#include#include//函式狀態碼定義

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

typedef int status;

//順序表的儲存結構定義

#define list_init_size 100

#define listincrement 10

typedef int elemtype; //假設線性表中的元素均為整型

typedef structsqlist; //順序表型別定義

status listcreate_sq(sqlist &l);

void listreverse_sq(sqlist &l);

int main()

listreverse_sq(l);

if(l.length)sqlist; //順序表型別定義

//函式宣告

status listinsert_sortedsq(sqlist &l, elemtype e);

//順序表初始化函式

status initlist_sq(sqlist &l)

//賦值

l.length = 0;

l.listsize = list_init_size;

return ok;

}//順序表輸出函式

void listprint_sq(sqlist l)

else

}}int main()

listprint_sq(l);

return 0;

}/* 請在這裡填寫答案 */

輸入樣例:

52 3 9 8 4

輸出樣例:

2 3 4 8 9

7-2 jmu-ds-順序表區間元素刪除 (15分)

若乙個線性表l採用順序儲存結構儲存,其中所有的元素為整數。設計乙個演算法,刪除元素值在[x,y]之間的所有元素,要求演算法的時間複雜度為o(n),空間複雜度為o(1)。

輸入格式:

三行資料,第一行是順序表的元素個數,第二行是順序表的元素,第三行是x和y。

輸出格式:

刪除元素值在[x,y]之間的所有元素後的順序表。

輸入樣例:

105 1 9 10 67 12 8 33 6 2

3 10

輸出樣例:

1 67 12 33 2

第二章作業題1 順序表

一 判斷題 1 1 對於順序儲存的長度為n的線性表,訪問結點和增加結點的時間複雜度分別對應為o 1 和o n t 1 2 若某線性表最常用的操作是訪問任一指定序號的元素和在最後進行插入和刪除運算,則利用順序表儲存最節省時間。t 時間複雜度都為o 1 1 3 對於順序儲存的長度為n的線性表,刪除第乙個...

第二章作業題1 順序表

判斷題 1 1 對於順序儲存的長度為n的線性表,訪問結點和增加結點的時間複雜度分別對應為o 1 和o n t 1 2 若某線性表最常用的操作是訪問任一指定序號的元素和在最後進行插入和刪除運算,則利用順序表儲存最節省時間。t 時間複雜度一樣,都為o 1 1 3 對於順序儲存的長度為n的線性表,刪除第乙...

第二章 順序表

線性表是具有相同特性的資料元素的乙個有限序列。靜態順序表。define list init size 100 線性儲存空間的初始分配量。typedef structsqlist 動態線性表。typedef structsqlist 線性表宣告 sqlist l l.data elemtype mal...