C++ 从给定的订单和预订单打印后订单
以下用于从给定的预订单和顺序打印后订单的代码显示分段错误。你能解释一下为什么吗C++ 从给定的订单和预订单打印后订单,c++,arrays,recursion,binary-tree,C++,Arrays,Recursion,Binary Tree,以下用于从给定的预订单和顺序打印后订单的代码显示分段错误。你能解释一下为什么吗 int j=0; void post_order(int in[],int pre[],int start,int end){ if(start>end) { return; } int i; for(int i=start;i<=end;i++){ if(pre[j]==in[i]){ break;
int j=0;
void post_order(int in[],int pre[],int start,int end){
if(start>end) {
return;
}
int i;
for(int i=start;i<=end;i++){
if(pre[j]==in[i]){
break;
}
}
j++;
post_order(in,pre,start,i-1);
post_order(in,pre,i+1,end);
cout<<in[i]<<" ";
}
void printPostOrder(int in[], int pre[], int n)
{
//Your code here
int start=0;
int end = n-1;
post_order(in,pre,start,end);
}
intj=0;
无效后序(int in[],int pre[],int start,int end){
如果(开始>结束){
回来
}
int i;
对于(int i=start;iint i;//<未初始化
//V--一个名为“i”的新变量
对于(ItI=启动;I.请提供A,包括示例输入,它演示了问题。您已经提供了两个数组一,表示树的前序和其他顺序遍历:PrordOrthRoad:1,2,4,5,3,6,INDERADY数组:4,2,5,1,3,6i,没有得到你的评论点。如果我用sayi=start初始化I,它会显示正确的结果吗?因为(I=start;iit仍然给出分段错误