linux2021
目的: 檢驗學員對 linked list 的認知
1
考慮一個單向 linked list,其結構定義為:
已知不存在 circular (環狀結構),下方程式碼嘗試對該單向 linked list 進行 Quick sort,預期依據遞增順序。
對應的測試程式如下:
參考執行輸出:
請補完程式碼,使得執行符合預期。
作答區
LLL = ?
(a)
left = left->next
(b)
left = (*left)->next
(c)
left = &((*left)->next)
(d)
*left = (*left)->next
AAA = ?
(a)
&pivot
(b)
pivot
(c)
&left
(d)
left
(e)
&right
(f)
right
BBB = ?
(a)
&pivot
(b)
pivot
(c)
&left
(d)
left
(e)
&right
(f)
right
CCC = ?
(a)
llist_concat(&result, right)
(b)
list_concat(&result, pivot); list_concat(&result, right)
(c)
list_concat(&result, right); list_concat(&result, pivot)
延伸問題:
examples/
目錄提供 quick sort 實作,請探討 Linux 的 linked list 和上述程式碼的落差,並改寫 linux-list 的 quick sort 範例,避免使用遞迴呼叫