永发信息网

根据前序序列和中序序列,输出后续序列 用c++

答案:1  悬赏:80  手机版
解决时间 2021-05-05 22:48
  • 提问者网友:我是我
  • 2021-05-05 15:41

#include <iostream.h>
#include <stdlib.h>
#include<malloc.h>
typedef char ElemType;
struct node
{
char data;
node *left;
node *right;

};
struct BTreeNode{
ElemType data;
BTreeNode* left;
BTreeNode* right;
};

void hh(BTreeNode* BT,int a[100],int b[100],int n){
BT->data =a[0];
int i,j,k,p,x,y,q,h;
x=y=j=h=0;
int c[100],d[100],e[100],f[100];
int r=a[0];
for(i=0;i<n;i++){
if(b[i]!=r){
c[h]=b[i];
h++;
}
if(b[i]==r){
p=k=i;
break;
}
}
for(i=k+1;k<n;k++){
d[x]=b[i];
x++;
}
if(a[0]!=b[p-1]){
for(i=1;i<n;i++){
if(a[i]!=b[p-1]){
e[j]=a[i];
j++;
}
if(a[i]==b[p-1]){
e[j]=b[p-1];
q=i;
break;}
}
}
else q=0;
for(k=q+1;k<n;k++){
f[y]=a[k];
y++;
}
cout<<"ddddd";
if(j!=0)hh(BT->left,e,c,p-1);
if(y!=0)hh(BT->right,f,d,n-p-1);
}
int main(){
int a[7]={ 1,2,3,4,5,6,7};
int b[7]={ 3,2,4,1,5,7,6};
BTreeNode* CT;
hh(CT,a,b,7);
int m;
m=CT->left ->data ;
cout<<m;
}
这是我编的 不知道对不对 而且有错误 能不能帮忙看一下 很急 真的 谢谢

最佳答案
  • 五星知识达人网友:逐風
  • 2021-05-05 15:50
你好。
很幸运看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
希望我的回答也能够帮到你!
祝你好运~!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯