题目用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币 作为感谢
还请高手帮忙一下 !!