contributed by < chao0502
>
詳細閱讀 C Programming Lab ,依據指示著手修改 queue.[ch] 和連帶的檔案,測試後用 Git 管理各項修改,記得也該實作 q_sort
函式。
編輯 queue.c & queue.h
q new: 新增一個 empty queue
q free: 將 queue 用到的空間都釋放掉
q insert head: 插入一個新的 node 在 queue 的head(LIFO)
q insert tail: 插入一個新的 node 在 queue 的head(FIFO)
q remove head: 將 queue 的 head 移除
q size: 回傳 queue 的長度
q sort: 將 queue 由小到大排序
作業說明中,已規範共筆書寫的慣例:中英文字元間以半形空白字元
區隔,請修正。
git clone
將檔案下載到本地端
make
,得到以下結果
q_insert_tail
以及 q_size
可在O(1)
時間複雜度完成queue_t
中新增兩個變數malloc fail
時,會給予原本要賦予記憶體空間的變數 NULL
值queue_t *q
的 q
之前要先判斷它是否是 NULL
if(q)
來確定 queue
是存在的,避免錯誤的使用free
掉 queue
中的 node