关于二叉树的迷惑

来源:互联网 发布:高铁抢票软件哪个好 编辑:程序博客网 时间:2024/05/01 05:07

//采用链接存储设计二叉树的基本算法
#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);
}

 帮我看看 是不是有问题啊