contributed by < JimmyZhan070100
>
linux2021
題目要求必須在 的時間內得到 qeue 的尾端和大小,所以在結構裡增加 tail
和 size
產生一個新的 queue,同時初始化相關的資料結構
釋放 queue 前需要檢查是否 queue 為 NULL。
再來釋放 queue 上的每個 node 使用空間,此外必須先將字串的空間先釋放後,再來釋放 node
新增一個 node 並且將字串放入 value,然後將 node 放入頭/尾
malloc
有成功,若沒有成功則必須 return false
\0
malloc(sizeof(char) * (strlen(s) + 1))
移除之前必須檢查是否 queue 為空的,以及 sp 是否有指向一塊記憶體位置。
依據題目要求,必須先將 value 指向的字串複製到 sp。接著改變 q->head 方向後,再釋放原本 q->head 的空間
題目說
up to a maximum of bufsize-1 characters, plus a null terminator
,要注意字串的正確長度
因為在結構上有紀錄節點的長度,所以只需要回傳 q->size
即可,不過要注意若 q 是空的,則要回傳 0
宣告三個指標 curr
, next
, tmp
。利用 curr
紀錄當下的節點,next
紀錄下一個節點,tmp
負責當作中介
接著將 tail
改為 head
的位置,並進入迴圈改變節點的順序
最後將 tail->next
改為 NULL,以及 head
指向 curr
所在的節點。
測試所有測資
$ make test
針對單一個測資可以用:
$ ./qtest -f <command file>
以得到更詳細的程式運行狀況,方便檢查程式的錯誤