利用中序法問題 |
答題得分者是:Zard
|
joen0000
一般會員 發表:47 回覆:47 積分:18 註冊:2004-11-07 發送簡訊給我 |
void __fastcall TForm1::Button4Click(TObject *Sender) { char name[20], *ptr; ptr =(Form1->Edit4->Text).c_str(); strcpy(name,ptr); surch_value(root,name); } void surch_value(Node_type *node,char name[]) { if(node != NULL) { if(name!=node->name) k=k 1; else { Form1->Edit5->Text=StrToInt(k); return ; } surch_value(node->llink,name); surch_value(node->rlink,name); } }這ㄍsurch_value副程式寫法是依照中序遞迴法寫的 我ㄉ目的是想找在以中序法輸出在memo中是在第幾個 先輸入edit4輸入要找ㄉ值 然後這個值在中序法中是 第幾個輸出在edit5中. 可是我ㄉedit5執行後沒有反應 這是位蛇ㄇㄋ 大大幫我看一下..Orz |
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
引言:if(name!=node->name) 永遠為TRUE, 所以跑不到else{Form1->Edit5->Text=StrToInt(k);}, 比對字串用strcmp, 你這樣的做法是在比對指標. 所以要這樣改void __fastcall TForm1::Button4Click(TObject *Sender) { char name[20], *ptr; ptr =(Form1->Edit4->Text).c_str(); strcpy(name,ptr); surch_value(root,name); } void surch_value(Node_type *node,char name[]) { if(node != NULL) { if(name!=node->name) k=k 1; else { Form1->Edit5->Text=StrToInt(k); return ; } surch_value(node->llink,name); surch_value(node->rlink,name); } }這ㄍsurch_value副程式寫法是依照中序遞迴法寫的 我ㄉ目的是想找在以中序法輸出在memo中是在第幾個 先輸入edit4輸入要找ㄉ值 然後這個值在中序法中是 第幾個輸出在edit5中. 可是我ㄉedit5執行後沒有反應 這是位蛇ㄇㄋ 大大幫我看一下..Orz if(strcmp(name, node->name) != 0) k=k 1; else { Form1->Edit5->Text=StrToInt(k); return ; }還有要注意node是否為NULL, 若為NULL也不會進入if(node != NULL){ } |
joen0000
一般會員 發表:47 回覆:47 積分:18 註冊:2004-11-07 發送簡訊給我 |
if(name!=node->name) 永遠為TRUE, 所以跑不到else{Form1->Edit5->Text=StrToInt(k);}, 比對字串用strcmp, 你這樣的做法是在比對指標.
所以要這樣改
if(strcmp(name, node->name) != 0) k=k 1; else { Form1->Edit5->Text=StrToInt(k); return ; }還有要注意node是否為NULL, 若為NULL也不會進入if(node != NULL){ } 真是厲害大大 點醒夢中人 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |