[理工] [資結]Binary tree的SWAP

看板Grad-ProbAsk作者 (大佬)時間13年前 (2010/12/19 23:30), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
關於二元樹之左右子樹交換的程式碼: NODE *SWAP_T(NODE *T) { if(T==NULL) return NULL; else { T->left=SWAP_T(T->left); T->right=SWAP_T(T->right); SWAP(T->left,T->right); return T; } } SWAP()的function code想必大家應該都知道 所以不另外再寫了 我的問題是如果將以上的程式碼改成: NODE *SWAP_T(NODE *T) { if(T==NULL) return NULL; else { NODE *t=new(NODE); t->data=T->data; t->left=SWAP_T(T->right); t->right=SWAP_T(T->left); return t; } } code這樣寫還能達成左右子樹交換嗎? 拜託版上的強者幫忙解答囉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.66.86

12/20 01:09, , 1F
為什麼不試著寫看看??
12/20 01:09, 1F

12/21 10:39, , 2F
這樣不就只是把copy的拿來用 只是左右子樹放到不同邊?
12/21 10:39, 2F

12/21 10:39, , 3F
這樣等於你用一份新的空間創一個新TREE不是原本樹swap?
12/21 10:39, 3F
文章代碼(AID): #1D3YKRTo (Grad-ProbAsk)