Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

LinkedLists

Total questions: 30

Worksheet time: 15mins

Name
Class
Date
1.

在單向鏈結串列中,每個節點主要包含哪些欄位?

a)

資料與上一節點指標

b)

資料與下一節點指標

c)

索引與資料緩衝區

d)

索引與兩個鄰居指標

2.

相較於陣列,單向鏈結串列在插入元素時的主要優點是什麼?

a)

可在任意位置高效插入

b)

順序存取速度更快

c)

記憶體連續度更好

d)

可用索引直接定位

3.

為何鏈結串列不適合隨機存取?

a)

需逐節點走訪才能到達目標

b)

指標不支援算術運算

c)

節點大小通常太小

d)

資料必須排序才能讀取

4.

在單向鏈結串列於前端加入節點 x 的正確步驟序是?

a)

head->next=x; x=head;

b)

x->next=head; head=x;

c)

x=head; head->next=x;

d)

x->next=NULL; head=x;

5.

在尾端加入節點 x 的關鍵指標設定是什麼?

a)

x 的 next 指向最後節點

b)

head 的 next 指向 x

c)

x 的 next 指向 head

d)

最後一節點的 next 指向 x

6.

刪除頭節點 p 的基本三步驟為何?

a)

head=head->next; p=head; free(p);

b)

p=head; free(p); head=head->next;

c)

p=head; head=head->next; free(p);

d)

p=head->next; head=p; free(head);

7.

刪除尾節點時,為何需要同時追蹤 prev 與 p?

a)

需要釋放多個節點記憶體

b)

需要保留尾節點資料

c)

需要更新 head 的資料

d)

需要讓 prev->next 設為 NULL

8.

刪除特定鍵值節點時,current 與 prev 的角色分別是什麼?

a)

current 指向欲刪節點,prev 指向其前一節點

b)

兩者皆指向尾節點

c)

current 指向前一節點,prev 指向欲刪節點

d)

兩者皆指向頭節點

9.

將兩個單向鏈結串列 x 與 y 串接為 z 的核心判斷是?

a)

若尾節點資料相同則合併

b)

若 head 為 NULL 則刪除 x

c)

若 y 的 next 為 NULL 則 z=x

d)

若 x 的 next 為 NULL 則 z=y

10.

下列哪一項最能描述陣列與單向鏈結串列的取捨?

a)

串列擅長快取區域性與隨機讀取

b)

陣列擅長隨機讀取,串列擅長動態插刪

c)

陣列與串列皆擅長隨機讀取

d)

陣列插入刪除恆為 O(1)

11.

在單向鏈結串列的三指標反轉法中,初始化時通常將哪一個指標設為 NULL?

a)

head 設為 NULL

b)

next 設為 NULL

c)

prev 設為 NULL

d)

current 設為 NULL

12.

執行三指標反轉時,迴圈的停止條件最常見的是哪一個?

a)

當反轉步數為偶數

b)

當節點值變遞減

c)

當 head 等於 tail

d)

當 p 走到 NULL

13.

完成單向鏈結串列反轉後,通常需要最後一步把 head 連到哪個指標?

a)

連到 current

b)

連到 p 的前驅

c)

連到 prev

d)

連到 tail

14.

關於環狀鏈結串列,以下哪一項正確描述其結構?

a)

最後一個節點 next 指向 head

b)

第一個節點 next 指向自己

c)

每個節點都指向兩個後繼

d)

尾端 next 一定為 NULL

15.

下列哪個理由最能說明在環狀鏈結串列中,從任一節點都可巡訪到所有元素?

a)

陣列式連續記憶體配置

b)

節點存放索引便於跳轉訪問

c)

每節點保存前驅與後繼兩指標

d)

尾節點回指到首節點形成閉環

16.

你需要將一個由小到大排序的單向串列改為由大到小,最有效率且原地的作法是什麼?

a)

在每個節點加入額外索引欄位

b)

複製到陣列後排序再建串列

c)

逐一交換相鄰節點鍵值

d)

使用三指標法反轉整個串列

17.

環狀鏈結串列中,從任一節點都能追蹤到所有節點的主要原因是什麼?

a)

首端節點保存整串列長度資訊

b)

尾端指向首端形成封閉迴圈

c)

每個節點存放兩個資料欄位

d)

使用動態陣列確保存取順序

18.

在非空的環狀串列前端插入新節點時,必須同時正確更新哪兩個指標關係?

a)

新節點與原首端、尾端與新節點

b)

原首端與任意節點、任意節點與任意節點

c)

原尾端與任意節點、任意節點與首端

d)

新節點與任意節點、任意節點與尾端

19.

回收整個環狀串列使其釋放到系統時,最合適的時間複雜度敘述為何?

a)

O(n) 因為需逐節點釋放記憶體

b)

O(1) 因為只要斷開一處連結

c)

O(log n) 因為使用二分搜尋釋放

d)

O(n2)O(n^2) 因為需要重複掃描節點

20.

計算環狀串列長度相較於單向鏈結串列的敘述,何者正確?

a)

單向為 O(1) 因為尾端儲存長度

b)

環狀為 O(1) 因為可隨時回到起點

c)

環狀為 O(log n) 因為可二分遍歷

d)

兩者皆為 O(n) 需遍歷所有節點

21.

雙向鏈結串列中,節點通常包含哪三個欄位?

a)

KEY、VALUE、HASH

b)

PREV、SIZE、NEXT

c)

LLINK、DATA、RLINK

d)

INDEX、DATA、COUNT

22.

已知在雙向鏈結串列中有指標 ptr 指向某節點,若要移到其後繼節點,哪個指派式最恰當?

a)

ptr = ptr->rlink

b)

ptr = ptr->llink

c)

ptr = ptr->data

d)

ptr = ptr->head

23.

在雙向鏈結串列前端插入新節點 x,需同時維護哪些連結以確保前後關係正確?

a)

x->rlink 指向原首、原首->llink 指向 x、head->rlink 指向 x

b)

x->data 指向原首、原首->data 指向 x、head->data 指向 x

c)

x->rlink 指向尾端、尾端->llink 指向 x、head->llink 指向 x

d)

x->llink 指向尾端、尾端->rlink 指向 x、head->rlink 指向尾端

24.

在雙向鏈結串列尾端插入節點 x,正確的更新步驟組合為何?

a)

p->data=x、x->data=p、head->data=x

b)

p->rlink=p、x->llink=x、head->llink=p

c)

p->llink=x、x->rlink=p、head->rlink=x

d)

p->rlink=x、x->llink=p、head->llink=x

25.

在雙向鏈結串列中,刪除前端節點的正確指標更新順序為何?

a)

p=head->llink;head->llink->rlink=head;free(p)

b)

p=head->rlink;head->rlink->llink=head;free(p)

c)

p=head->rlink;head->rlink->llink=p;free(p)

d)

p=head->rlink;head->llink->rlink=p;free(p)

26.

關於多項式以鏈結串列表示,節點欄位 COEF、EXP、LINK 分別代表什麼?

a)

COEF指係數,EXP指次方,LINK指下一節點

b)

COEF指次方,EXP指係數,LINK指前一節點

c)

COEF指係數,EXP指變數,LINK指任意索引

d)

COEF指常數,EXP指次方,LINK指陣列位置

27.

已知多項式 A= 3x14+2x8+13x^{14}+2x^{8}+1 與 B= 8x14−3x10+10x68x^{14}-3x^{10}+10x^{6} ,使用鏈結串列由高次到低次合併相加後,第一個輸出節點的係數與次方應為?

a)

(11,14) 因為 3+8 合併同次方

b)

(3,14) 因為保留較大係數

c)

(0,14) 因為相互抵銷

d)

(8,14) 因為取較大多項式

28.

在合併相加 A 與 B 的過程中,若當前比較節點的 EXP(p)=8 而 EXP(q)=10,指標應如何移動?

a)

同時併入並同時前進

b)

將 p 併入結果並 p=q

c)

將 q 併入結果並 q 前進

d)

將 p 併入結果並 p 前進

29.

設計 KTV 點歌系統:若要將目前歌單的最後一首移到第一個位置,最適合使用哪種資料結構與操作?

a)

堆疊以push再pop兩次

b)

陣列配合隨機存取與交換

c)

佇列的enqueue後再dequeue

d)

雙向鏈結串列調整指標連結

30.

堆疊與佇列在鏈結串列上的對應,哪個描述最恰當?

a)

堆疊只在尾端加入,佇列只在前端加入

b)

堆疊在兩端加入刪除,佇列只在尾端刪除

c)

堆疊與佇列皆在同一端加入刪除

d)

堆疊在同一端加入刪除,佇列在兩端加入刪除