求助,程序出错了,大虾帮忙啊
c++吧
全部回复
仅看楼主
level 1
狂一户 楼主
#include<iostream>
using namespace std;
typedef char ElemType;
#define MaxSize 100
typedef struct node          //定义二叉树
{
     ElemType data;
     struct node *lchild;
     struct node *rchild;
}BTNode;
void CreateBTNode(BTNode *&h,char *str)       //建造二叉树
{
     BTNode *zhan[MaxSize],*p=NULL;
     int top=-1,k,j=0;
     char c;
     c=str[j];
     while(c!='#')
     {
         switch(c)
         {
         case '(':top++;zhan[top]=p;k=1;break;
         case ')':top--;break;
         case ',':k=2;break;
         default:p=new BTNode;
             p->data=c;p->lchild=NULL;p->rchild=NULL;
             if(h==NULL)
                 h=p;
             else
                 switch(k)
                 {
                 case 1:zhan[top]->lchild=p;break;
                 case 2:zhan[top]->rchild=p;break;
                 }
         }
         j++;
         c=str[j];
     }
}
void display(BTNode *h)      //输出root的左右的孩子
{
     cout<<"左孩子结点值:"<<h->lchild->data<<endl;
     cout<<"右孩子结点值:"<<h->rchild->data<<endl;
}
int high(BTNode *h)        //求高度
{
     int i,lift,right;
     if(h==NULL)
         return 0;
     else
     {
         if(h->lchild!=NULL)
             i=1;
         else

2010年11月27日 03点11分 1
1