括号表示法打印二叉树JAVA_关于括号表示发输出

//编译链接没错误,就是输出有问题,急求!!!

//代码在下面

#include"stdio.h"#include"stdlib.h"#define MAX 100typedef char datatype;struct node{datatype data;node *lchild,*rchild;};node *init()//初始化空二叉树{ return NULL;}//(2)二叉树的创建node *createbitree(node *root,datatype str[]){ node *a[MAX],*p; int top=0,i,k=0;//k=1表示左子树,k=2表示右子树,top表示栈顶+1 for(i=0;str[i]!='\0';) {  if(str[i]=='(')  {   k=1;   a[top]=p;   top++;  }  else if(str[i]==',')  {k=2;}  else if(str[i]==')')  {top--;}  else  {   p=(node *)malloc(sizeof(struct node));   p->data=str[i];   p->lchild=p->rchild=NULL;  }  if(root)  {    if(k==1)  {   a[top-1]->lchild=p;  }  else if(k==2)  {   a[top-1]->rchild=p;  }  }  else  {   root=p;  }  i++; } return root;}//(4)用括号表示法输出二叉树的所有节点void display(node *root){ node *p=root; if(p) {  printf("%c",p->data);//打印根结点  if(p->lchild||p->rchild)  {   printf("(");   if(p->lchild)   display(p->lchild);//打印左子树   printf(",");   if(p->rchild)   display(p->rchild);//打印右子树   printf(")");  } }void main(){ datatype str[MAX],x,l,r; node *root; int h; printf("请输入括号表示法的二叉树:"); gets(str); root=init();//初始化空二叉树 root=createbitree(root,str);//(2)二叉树的创建display(root);//(4)用括号表示法输出二叉树的所有节点}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值