关于二叉树的迷惑

本文介绍了一种使用链式存储方式构建二叉树的方法,并通过递归实现了中序遍历。通过字符串输入的方式创建二叉树结构,进而演示了如何通过编程实现树的构建与遍历。

//采用链接存储设计二叉树的基本算法
#include<iostream.h>
#define   MaxSize   100
//#define   MaxWidth   40
typedef char  elemtype;
typedef struct  node
{
 elemtype  data;
 struct node *left,*right;
}BTree;
//void dispstack(BTree *stack[],int top);
void creatree(BTree* &b,char *str)
{
 BTree *stack[MaxSize],*p;
 int top=-1,k,j=0;
 char ch;
 b=NULL;
 ch=str[j];
 while(ch!='/0')
 {
  switch(ch)//(b,"(a(b(c),d(e(,f),g)))")
  {                                     
  case'(':top++;stack[top]=p;k=1;break;
  case')':top--;break;
  case',':k=2;break;
  default:p=new BTree;
   p->data=ch;p->left=p->right=NULL;
   if(b==NULL)
    b=p;
   else
   {
    switch(k)
    {
    case 1:stack[top]->left=p;break;
    case 2:stack[top]->right=p;break;
    }
   }  
  }
     j++;
     ch=str[j];
 }
}
void print(BTree *bt)
{
 if(bt)
 {
  print(bt->left);
  cout<<bt->data<<"  ";
  print(bt->right);
 }
}
void main()
{
 BTree *root;
 creatree(root,"(a(b(c),d(e(,f),g)))");
    print(root);
}

 帮我看看 是不是有问题啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值