contributed by < LiunuXXX
>
(Notice that An empty queue is one pointing to a valid structure, but the head field has value NULL.)
(Noitce that this function should not allocate or free any list elements.)
為了使 q_size 和 q_insert_tail 在 時間內完成,在 Queue Structure 內加入 tail 和 size 分別記錄尾端指標和大小。
初始化queue
釋放 queue 所佔用的空間,若 queue 為空則 return,
否則利用 this 記錄 head,並逐步釋放每一個 node 的 value 及其空間。
插入 node 於 queue_head
以下三種情況回傳false :
此外,若 queue 為 empty queue,則 head 和 tail 均指向 inserted node (newh)
插入 node 於 queue_tail,
同 q_insert_head,以下三種情況回傳 false :
若 queue 為 empty queue,則 head 和 tail 均指向 inserted node (newh)
若 queue is NULL 則 return 0,否則 return q->size 即可
將queue反轉,策略是利用 r 指標緊跟著 p 後面,並從 q_head 開始,循序將各個 node(即 p) 的 next 指向 r,最後再將 head 和 tail 互換即可
未完成待補
未完成待補