来个c语言算法大神帮帮忙!
要求
输入
前序序列(以逗号隔开)
中序序列(以逗号隔开)
输出
后序序列(以逗号隔开 展开
#include<stdio.h>
#include<string.h>
void makeLDR(char DLR[],char LDR[],char LRD[],int n1)
{ int n2;
char *p=strchr(LDR,DLR[0]);
n2=p-LDR; //左子树节点数
LRD[n1-1]=DLR[0]; //赋后序根节点
if(n2>0)makeLDR(DLR+1,LDR,LRD,n2); //递归建立左子树的后序
if(n1-n2>1)makeLDR(DLR+1+n2,LDR+n2+1,LRD+n2,n1-n2-1); //递归建立右子树的后序
}
int main()
{ int i,n;
char DLR[50],LDR[50],LRD[50],c;
for(i=0,c=' '; c!='\n';) //读入左子树序列
scanf("%c%c",&DLR[i++],&c);
for(i=0,c=' '; c!='\n';) //读入右子树序列
scanf("%c%c",&LDR[i++],&c);
DLR[n=i]=LDR[i]=LRD[i]='\0';
makeLDR(DLR,LDR,LRD,n);
printf("后序序列:\n");
for(i=0;i<n;i++)
printf("%c%c",LRD[i],i==n-1?'\n':',');
return 0;
}
大佬,我还有三个c语言提问,你能不能帮忙解决一下
明天可以吗?