二叉樹的c語言程序,,可以幫忙看下嗎,好多報錯
#include <stdio.h>#include <stdlib.h>#define TElemType int#define Status int#define OVERFLOW 0typedef enum PointerTag{Link,Thread};typedef struct BiThrNode{TElemType data;struct BiThrNode *lchild,*rchild;PointerTag LTaga,RTag;}BiThrNode,*BiThrTree;//定義二叉樹的存儲結(jié)構(gòu)Status InOrdeThreading(BiThrTree &Thrt,BiThrTree T);void InThreading(BiThrTree p);void CreatTree(BiThrNode *b,char *str);int main(void){return 0;}void CreatTree(BiThrNode *&b,char *str){BiThrNode *St[20];int top=-1;BiThrNode *p;int j=0;int k;char ch;b=NULL;ch=str[j];while(ch!=''){switch(ch){case'(':{top++;St[top]=p;k=1;break;}case')':{top--;break;}case',':{k=2;break;}default:{p=(BiThrNode *)malloc(sizeof(BiThrNode));p->data=ch;p->lchild=NULL;p->rchild=NULL;if(b=NULL)b=p;else{switch(k){case 1:{St[top]->lchild=p;break;}case 2:{St[top]->rchild=p;break;}}}}}j++;ch=str[j];}}//二叉樹的創(chuàng)建Status InOrdeThreading(BiThrTree Thrt,BiThrTree T){BiThrTree pre;if(!(Thrt=(BiThrTree)malloc(sizeof(BiThrNode))))exit(OVERFLOW);Thrt->LTaga=Link;Thrt->RTag=Thread;Thrt->rchild=Thrt;if(!T)Thrt->lchild=Thrt;else{Thrt->lchild=T;pre=Thrt;InThreading(T);pre->rchild=Thrt;pre->RTag=Thread;Thrt->rchild=pre;}return 1;}void InThreading(BiThrTree p){BiThrTree pre;if(p){InThreading(p->lchild);if(!p->lchild){p->LTaga=Thread;p->lchild=pre;}if(!pre->rchild){p->RTag=Thread;p->rchild=p;}pre=p;InThreading(p->rchild);}}//二叉樹的中序遍歷
你的程序根本不是c語言的程序 ,,是C++的,,你用C編譯,當(dāng)然會有很多錯
在C++下,,你的程序沒有任何錯,,可以編譯運(yùn)行。
二叉樹的C程序,,很多教材(程)上有現(xiàn)成的,,直接拿來用就可以了。