Fw: [問題] 用結構指標建立binary tree(已解決)

看板C_and_CPP (C/C++)作者 (圈圈)時間10年前 (2015/10/18 13:53), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
※ [本文轉錄自 Programming 看板 #1M8p8J5N ] 作者: teybend (圈圈) 看板: Programming 標題: [問題] 用結構指標建立binary tree 時間: Sun Oct 18 13:45:52 2015 題目用preorder & inorder 建立binary tree並用postorder輸出 我的code: #include <iostream> #include <algorithm> #include<string.h> using namespace std; char pre[27]; char in[27]; struct node { node *left; node *right; char s; }; node findNextNode(int pstart,int istart,int size,string s) { if(size==0) { node leaf={NULL,NULL,' '}; return leaf; } node n={NULL,NULL,pre[pstart]}; if(size==1) {return n;} int ipos=istart; while(pre[pstart]!=in[ipos]){ipos++;} int lsize=ipos - istart; int rsize=size-lsize-1; ////////////////下兩行當return node 後會出現error////////////// *n.left=findNextNode(pstart+1,istart,lsize,"left"); *n.right=findNextNode(pstart+lsize+1,ipos+1,rsize,"right"); } void Posttrace(node p) { if(p.left!=NULL) Posttrace(*p.left); if(p.right!=NULL) Posttrace(*p.right); cout<<p.s<<" "; } int main() { int m; //這邊m只是輸入要跑幾次 無關重要 cin>>m; for(int i=0;i<m;i++) { int n ; cin>>n; //輸入preorder inorder for(int i=0;i<n;i++) { cin>>pre[i]; } for(int i=0;i<n;i++) { cin>>in[i]; } node root; root=findNextNode(0,0,strlen(pre),"parent"); Posttrace(root); } return 0; } http://plusaber.net/2015/08/26/Leetcode_Construct%20Binary%20Tree%20from%20Preorder%20and%20Inorder%20Traversal%20/ 上面連結是我參考的網址 但我想把它改成結構方式 目前問題是編譯可以成功 但註解地方跑到時會出現error 跪求(1)解決方式可以跑出正確結果 跟(2)指標為何會有錯誤 觀點講解 願意解答(1) 願以500P幣 作為感謝 (2)100P幣 作為感謝 還請高手幫忙一下 !! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.78.51 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1445147155.A.157.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: teybend (111.241.78.51), 10/18/2015 13:53:48

10/18 18:37, , 1F
稍微看了一下 問題還蠻多的 總之先看一下置底第五誡吧
10/18 18:37, 1F

10/18 18:41, , 2F
剛剛看太快 這應該也要看看第三誡才對
10/18 18:41, 2F

10/18 22:33, , 3F
不太懂?我是有一個宣告一個node n回傳給指標指,跟第三
10/18 22:33, 3F

10/18 22:34, , 4F
戒不太相同吧!
10/18 22:34, 4F

10/18 23:28, , 5F
node裡的left,right都是指標 沒有指向已分配空間不能提取
10/18 23:28, 5F
文章代碼(AID): #1M8pFjwh (C_and_CPP)
文章代碼(AID): #1M8pFjwh (C_and_CPP)