大佬们帮帮忙改错,几年有好几个错误

#include <stdio.h>

#include <stdlib.h>

 

 #define STACK-INIT-SIZE 100;

#define STACKINCREMENT 10;

#define MAXSIZE 100

int count0 = 0; //计数器 

/**二叉树数据结构定义**/

typedef struct BiTreeNode

{

    char data;

    struct BiTreeNode *left;

    struct BiTreeNode *right;

}BiTreeNode,*BiTree;

 

typedef struct{

  *base;

  *top;

 int stacksize;

}SqStack; 

 

//构造一个空栈 

 InitStack(SqStack &S)

 S.base=(SElemType * )malloc (STACK-INIT-SIZE * sizeof(ElemType));

 if(!S.base)

 exit(OVERFLOW);

 S.top=S.base;

 S.stacksize=STACK-INIT-SIZE;

 return OK;

}

//入栈 

 Status Push(SqList &S,SElemType e)

 if(S.base-S.top>=S.stacksize){

  S.base=(SElemType *)remalloc(S.base,(S.stack+STACKINCREMENT)*sizeof(SElemType));

  if(!S.base) exit(OVERFLOW);

S. top=S.base+S.stacksize;

S. stack+= STACKINCREMENT;

}

* S. top++= e;

return OK;

 }

 //出栈

Status Pop(SqStack &S,SElemType &e){

if( S. top==S.base)

return ERROR;

e=*--S.top;

return OK;

}

 

 

/**二叉树的建立--按照先序方式建立--插入**/

void CreateBiTree(BiTree &T)

{

    char val;

    scanf("%c",&val);

 

    if(val == '#')

        T = NULL; //null表示为空枝

    else

    {

        T = (BiTree)malloc(sizeof(BiTreeNode));

        T->data = val;

        CreateBiTree(T->left);

        CreateBiTree(T->right);

    }

}

 

 

/**先序遍历 根左右**/

void PreOrderTravel(BiTree T)

{

    if(T==NULL)

        return;

    printf("%c ",T->data);

    PreOrderTravel(T->left);

    PreOrderTravel(T->right);

}

 

/**中序遍历 左根右**/

void InOrderTravel(BiTree T)

{

    if(T==NULL)

        return;

    InOrderTravel(T->left);

    printf("%c ",T->data);

    InOrderTravel(T->right);

}

 

/**后序遍历 左右根**/

void TailOrderTravel(BiTree T)

{

    if(T==NULL)

        return;

    TailOrderTravel(T->left);

    TailOrderTravel(T->right);

    printf("%c ",T->data);

}

/* 计算度为0的结点

void CountNode0(BiTree T)

{

 

 

 

} */

 /* 中序遍历非递归*/

 //中序遍历二叉树非递归

Status InOrderTraverse(BiTree T,Status (*Vist)(TElemType)){

InitStack(S);

p= T;

while( p|| ! StackEmpty(S)){

if(p){

Push(S, p);

p= p-> lchild;

}

else{

Pop(S,p)

if(! Vist( p->data))

return ERROR;

p= p->rchild;

}

 

}

return OK

}

 /*求二叉树高度*/

 int height(BiTree T)  

  //int h1;

 // int h2;

  if(T==Null)

    Return 0;

 else{

 int LHeight=height(T->left);

 int RHeight=height(T->right);

 } 

 if(LHeight>RHeight) 

 return(LHeight++);

 else{

  return(RHeight++)

 }

  

  

 

 

 

 

  

}  

int main()

{

 

    printf("测试代码\n");

    BiTree T;

    T = (BiTree)malloc(sizeof(BiTreeNode));

 

    printf("请给二叉树按照先序方式依次输入结点的值(空结点为#):\n");

    CreateBiTree(T);

 

 

    printf("先序方式遍历结果:\n");

    PreOrderTravel(T);

    printf("\n");

    printf("中序方式遍历结果:\n");

    InOrderTravel(T);

    printf("\n");

 

    printf("后序方式遍历结果:\n");

    TailOrderTravel(T);

    printf("\n");

    

// printf("叶子结点结果:\n");

   // CountNode0(T);

   // printf("共%d个\n",count0);

    

    printf("二叉树的高度:%d\n",height(T));

    return 0;

}

#define STACK-INIT-SIZE 100====变量名不能用中横线,只能用下划线

typedef struct{
    *base;

    *top;

    int stacksize;

}SqStack;===结构元素的变量类型上哪里去了哈?

你代码贴的有问题,丢失了很多括号啥的,用上面的“代码段”格式化贴出来吧

把错误的信息发出来看看,更好定位错误解决问题。

 

 /* 中序遍历非递归*/

 //中序遍历二叉树非递归

Status InOrderTraverse(BiTree T,Status (*Vist)(TElemType)){

InitStack(S);

这个是哪里来的?排序怎么要初始化呢

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632