[問題] 請教Singly Linked List的實作問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
程式碼(Code):(請善用置底文網頁, 記得排版)
理論上,Linked List可以很方便的增加與刪除list中的node
只要打斷link再重新接上即可
小弟試著練習寫單邊link的list(這是個circular list,最後一個(last)會連到第一個)
list.cpp: http://codepad.org/3xTvmAnB
list.h : http://codepad.org/yK31YvqU
class cl_Node是關於node的資訊
class cl_List是關於list的操作
照小弟的寫法,關於code裡的Insert與Delete,有些問題想請教
1. 不論Insert與Delete,都要先找到目標node之位置
目前我只記錄last位置,這樣為了找出目標node,
就得要整個list都找一遍嗎?感覺很沒有效率...
但如果記錄了很多位置,好像就失去list的意義,不如用vector或array就好...
請問有更好的方法嗎?
2. Delete時,我想要把目標node移除,
然後把 "link到目標node的node" 重新link到 "目標node本來的link目標"
但是就算找到了目標node之位置,還是無法馬上知道 "link到目標node的node" 是誰,
得再另外用欄位去記錄的樣子...
這樣算是單邊link list的缺點嗎?還是我的想法上有缺失呢?
3. class cl_Node和class cl_List的destructor
應該是要清除node和list,但是該怎麼寫才對呢?
麻煩大家幫忙解惑一下
感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.176.221.68
推
01/06 04:27, , 1F
01/06 04:27, 1F
→
01/06 04:30, , 2F
01/06 04:30, 2F
→
01/06 04:31, , 3F
01/06 04:31, 3F
→
01/06 04:36, , 4F
01/06 04:36, 4F
→
01/06 04:37, , 5F
01/06 04:37, 5F
→
01/06 08:19, , 6F
01/06 08:19, 6F
→
01/06 08:19, , 7F
01/06 08:19, 7F
→
01/06 08:21, , 8F
01/06 08:21, 8F
→
01/06 08:22, , 9F
01/06 08:22, 9F
→
01/06 08:23, , 10F
01/06 08:23, 10F
→
01/06 12:41, , 11F
01/06 12:41, 11F
→
01/06 12:46, , 12F
01/06 12:46, 12F
→
01/06 12:48, , 13F
01/06 12:48, 13F
→
01/06 12:49, , 14F
01/06 12:49, 14F
→
01/06 12:50, , 15F
01/06 12:50, 15F
推
01/07 00:38, , 16F
01/07 00:38, 16F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):