来个c语言算法大神帮帮忙!

c语言实现一个程序根据二叉树的前序,中序序列,给出后序序列要求输入前序序列(以逗号隔开)中序序列(以逗号隔开)输出后序序列(以逗号隔开... c语言实现一个程序根据二叉树的前序,中序序列,给出后序序列
要求
输入
前序序列(以逗号隔开)
中序序列(以逗号隔开)
输出
后序序列(以逗号隔开
展开
 我来答
听不清啊
高粉答主

2020-05-15 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#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语言提问,你能不能帮忙解决一下
追答
明天可以吗?
科迎画4121
2020-05-15 · 贡献了超过1457个回答
知道答主
回答量:1457
采纳率:10%
帮助的人:90.5万
展开全部
详细要求有没有?
追问
没有,大致差不多就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式