作者oohay (五黑)
看板Programming
標題Re: [問題] TREE
時間Thu Dec 20 00:55:40 2007
※ 引述《ntouckcm (知足常樂)》之銘言:
: node* tree::find(node *p,element key)
: {
: if(p!=0)
: {
: if(p->left!=0&&p->right!=0)
: find(p->left, key);
: if(strcmp(p->data,key)==0)
: { return p; }
: if(p->left!=0&&p->right!=0)
: find(p->right, key);
: }
: }
: 用遞迴尋找....
: 我是訪照中序的找法 去比較字元是不是相同再回傳
: 但是會出現要不要除錯的訊息...
: 有誰可以提點我一下嗎?
: 找了好久><
先找左邊,再比較中間,然後找右邊...
如果左邊是空樹,右邊是空樹,就不找左邊,不找右邊,
那,左邊不是空樹而右邊是空樹,與左邊是空樹而右邊不是空樹,又如何呢?
且比較中間若完全不符合,find函式必須傳回什麼?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.230.186
推 ntouckcm:可是這三種情形不會發生耶...140.121.219.142 12/20 10:04
→ ntouckcm:如果insert node的話一定會左節點右節點140.121.219.142 12/20 10:04
→ ntouckcm:都插入,而且其實是要比較leave node140.121.219.142 12/20 10:05
→ ntouckcm:所以中間一定不會符合...140.121.219.142 12/20 10:06
→ ntouckcm:你的意思是還是要判斷在程式中,不然會有140.121.219.142 12/20 10:06
→ ntouckcm:錯誤嗎?140.121.219.142 12/20 10:07
→ oohay:上文是指find函式有這問題,不必考慮insert 218.160.210.96 12/20 15:15