[問題] 自己實作tree怎麼增加node

看板C_and_CPP作者 (阿神)時間11年前 (2012/11/23 16:29), 編輯推噓1(1015)
留言16則, 8人參與, 最新討論串1/1
最近在看C++的class 想說試試看自己寫個binary tree 所以就先寫了 class node{ public: private: int node_key; node *leftnode, *rightnode; } 如果我不確定預先有幾個node,要在執行期才增刪 這邊我想了好久,怎麼想怎麼不對 如果要在執行期增加node 那不就等於要增加型別為node的變數 可是增加變數要給他變數名稱,但應該沒辦法在執行期才給吧 除非是類似vector這種可以push_back 所以我想問的是,要怎麼樣才可以隨意的增加node? 目前我只有想到一個很拐彎抹角的方法 就是用一個node變數和一個vector<node> 然後把輸入的node存到node變數,再push_back到vector<node>裡 這樣就可以不斷重複使用同一個node變數 只是這樣好像有點怪 應該有比較好的方法,想問問大家 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.19.145.249

11/23 16:32, , 1F
new & delete...
11/23 16:32, 1F
可以說詳細一點嗎?

11/23 16:42, , 2F
你指標都寫出來了怎麼不會用?
11/23 16:42, 2F

11/23 16:42, , 3F
亂抄?
11/23 16:42, 3F
如果可以增加一個node我知道怎麼讓前一個node指向新node 但我問題是怎麼在執行期增加新node

11/23 18:05, , 4F
你想的二個方法都是一般做tree的方法,沒錯
11/23 18:05, 4F

11/23 19:51, , 5F
為什麼你要用private?
11/23 19:51, 5F
剛學,學書上其他的範例 ※ 編輯: luke90512 來自: 163.19.145.249 (11/23 21:47)

11/23 22:01, , 6F
類似if(leftnode==NULL) leftnode = new node();
11/23 22:01, 6F

11/23 22:02, , 7F
先找到要插入的點 再做產生node的動作 並沒有實際的變數名
11/23 22:02, 7F

11/23 22:02, , 8F
而是透過指向動態配置的指標來做到
11/23 22:02, 8F

11/23 22:24, , 9F
你看書都只看五分之一的嗎
11/23 22:24, 9F

11/23 23:11, , 10F
你看書都從中間開始看的嗎
11/23 23:11, 10F
因為有些都看一半懂... 有些先跳過,看後面時想到前面在講什麼才回來看 大概就這樣反反覆覆的看 可以請問這是要看哪部分嗎...Orz ※ 編輯: luke90512 來自: 163.19.145.249 (11/23 23:26)

11/24 02:30, , 11F
一樓已經講了,要用 new & delete 運算子,在指標那章吧
11/24 02:30, 11F

11/24 02:30, , 12F
學著用資料結構之前應該要先懂基本的語法 @@
11/24 02:30, 12F

11/24 02:49, , 13F
花點時間把書全看完比你在這裡卡關花的時間還短
11/24 02:49, 13F

11/24 23:06, , 14F
講樹那一定是一章或一節,裡面會講所有跟樹有關的操作
11/24 23:06, 14F

11/24 23:07, , 15F
除非你那章剛好撕爛或泡水剩下一半
11/24 23:07, 15F

11/24 23:08, , 16F
毛姆建議大家跳讀,他可沒說技術的書也可以
11/24 23:08, 16F
文章代碼(AID): #1GhpFJGi (C_and_CPP)