狂一户 狂一户
关注数: 4 粉丝数: 103 发帖数: 259 关注贴吧数: 14
求助,大虾帮忙啊! #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
求助,程序出错了,大虾帮忙啊 #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
求助,有代码,不知道为什么运行不了 #include <iostream> using namespace std; typedef char ElemType; typedef struct linknode {          ElemType data;                 //数据域      struct linknode *next;         //指针域 } LiStack;                         //链栈类型定义 void InitStack(LiStack *&s)     //初始化链栈s; {      s=(LiStack *)malloc(sizeof(LiStack));      s->next=NULL; } void ClearStack(LiStack *&s)    //释放栈 {      LiStack *p=s->next;      while (p!=NULL)      {              free(s);          s=p;          p=p->next;      }      free(s);     //s指向尾结点,释放其空间 } int StackLength(LiStack *s)     //判断长度 {      int i=0;      LiStack *p;      p=s->next;      while (p!=NULL)      {              i++;          p=p->next;      }      return(i); } int StackEmpty(LiStack *s)     //判断是否为空 {      return(s->next==NULL); } void Push(LiStack *&s,ElemType e)     //进栈 {      LiStack *p;      p=(LiStack *)malloc(sizeof(LiStack));      p->data=e;      p->next=s->next;         //插入*p结点作为第一个数据结点      s->next=p; } int Pop(LiStack *&s,ElemType &e)     //出栈 {      LiStack *p;      if (s->next==NULL)         //栈空的情况          return 0;      p=s->next;                 //p指向第一个数据结点      e=p->data;      s->next=p->next;      free(p);      return 1; } int GetTop(LiStack *s,ElemType &e)     //读取栈顶元素 {      if (s->next==NULL)         //栈空的情况
1 下一页