以下是编程器jb51.cc通过网络收集整理的代码片段。
编程之家的编辑现在分享给大家,作为参考。
#包含
#包含
struct Node{
Node *lchild; //左儿子的指针
Node *rchild; //右儿子指针
char c; //节点字符信息
}Tree[50]; //静态内存分配数组
int loc; //分配给静态数组的节点数
请求Node *creat ()//节点空间,并返回指向那里的指针
tree [ loc ].lchild=tree [ loc ].rchild=null; //初始化左右的儿子为空
返回树[ loc ];
}
char str1[30],str2[30]; //保存前序和中序遍历字符串
//只要修正打印输出的位置,就可以进行适当的前序和中序遍历
voidpostorder(node*t ) {
if(T-Lchild!=NULL ) {
postorder(t-lchild;
}
if(T-Rchild )!=NULL ) {
postorder(t-rchild );
}
printf('%c ',T-c ); //遍历该节点并输出文字信息
}
node*build(intS1,int e1,int s2,int e2 ) {
Node* ret=creat (;
ret-c=str1[s1]; //该节点字符是先行遍历第一个字符
int rootIdx;
for(intI=S2; i=e2; I ) {
if(str2[I]==str1[S1] ) {
rootIdx=i;
黑;
}
}
射频(rootidx!=s2 ) {
ret-lchild=build(S1,S1 ) rootIdx-1 )、s2,rootIdx-1 ); //递归地恢复其左侧的树
}
射频(rootidx!=E2({
ret-rchild=build(S1(rootidx-S2 ) 1,e1,rootIdx 1,e2 ); //递归恢复其右边的子树
}
返回;
}
int main ()。
freopen(in.txt )、(r )、stdin );
wile(Scanf ),str1!=EOF
scanf('%s ',str2); //输入
loc=0; //初始化的静态内存空间中使用的节点数为0
intL1=Strlen(str1;
intL2=Strlen(str2;
node*t=build(0,L1-1,L2-1 );
postorder(t; //稍后遍历
打印f (n );
}
返回0;
}
以上是编程之家(jb51.cc )为你收集整理的所有代码内容,希望能解决文章面临的程序开发问题。
如果你觉得编程主页的内容不错,欢迎向程序员朋友推荐程序员网站。
总结
以上是编程器为你收集整理的C推后树代码的全部内容,希望文章能解决C推后树代码面临的程序开发问题。
如果你觉得编程主页的内容不错,欢迎向程序员朋友推荐程序员网站。
此文字内容由网友互联网收集整理提供,仅供学习参考,版权归原作者所有。
小编个人微信号jb51ccc
喜欢与人分享编程技术和工作经验,欢迎来到编程之家官方交流群!