※ 引述《karate362 (最近腰不痛的卡拉特)》之銘言:
: 總之就是並沒有定義_tail..
: 這是老師不小心忘了寫嗎?
: 還是本意就是這樣呢?
: ...這樣的話push_back會變成O(n)耶...
是的, 故意不定義 _tail. 所以請用 O(n) 的方法來寫 push_back().
Actaully, 請注意 _tail 在 DList 中是指 "pass-the-end" pointer (也就是 end()
要回傳的位置), 而且在 DList constructor 就已建立, 之後不會被改變或 delete
(即使是 clear()). 他並不是指到最後一個儲存的 element...
: 另外 對於List的popfront(或back)函式 究竟要不要把它的node給delete掉釋放memory?
: earse()和 clear()呢?
Yes, you need to delete the ListNode (but not the case in Array).
For Array, don't delete the T* _data except in "expand()" or destructor.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.134.49