回 帖 发 新 帖 刷新版面

主题:[讨论]按照前序二叉树建立,运行不出,请高人指点

用tc2.0建立不起来,恳求更好的算法
#include<stdio.h>
#define null 0
typedef char datatype;
typedef struct node{
 datatype data;
  struct node *lchild,*rchild;
}bintnode;
typedef bintnode *bintree;
bintree root;
void createbintree(bintree *t)
{
  char ch;
  if((ch=getchar())==' ')
   *t=null;
  else
   {
    *t=(bintnode *)malloc(sizeof(bintnode));
    (*t)->data=ch; 
     createbintree(&(*t)->lchild);
     createbintree(&(*t)->rchild);
    }
}
print(bintree t)
{
 if(t)
  {printf("%c",t->data);
    print(t->lchild);
    print(t->rchild);
   }
}
 void main()
{ bintree t;
  createbintree(&t);
  print(&t);
}


回复列表 (共4个回复)

沙发

请不要忘记现在是21世纪了!

请让优秀古董软件 TC 休息,谢谢!
请到 BORLAND 软件博物馆 访问 TC ! 请尊重历史!

请停止使用优秀古董软件 TC !
请不要教新手学 TC !

请不要用垃圾 :有人自称呼的“最好用的C编译工具-turbo c for windows无限制共享版 “

谢谢大家!

板凳

那用什么软件,我用TC还蛮顺手的.用VC++没TC好!
请高人们不要在用什么软件方面争论了,帮我分析下算法好吧!!不胜感激!

3 楼

#include<stdio.h> 
#include<stdlib.h> 
typedef struct BiT{ 
char data; 
struct BiT *lchild; 
struct BiT *rchild; 
}BiT; 
BiT* CreateBiTree(BiT *T) { 
//构造二叉链表表示的二叉树T 
char ch; 
scanf("%c",&ch); 
if (ch=='#') T = NULL; 
else { 
T = (BiT *)malloc(sizeof(BiT)); 
T->data = ch; 
T->lchild=CreateBiTree(T->lchild); 
T->rchild=CreateBiTree(T->rchild); 

return T; 

void PreOrderTraverse(BiT *T) { 
// 先序遍历二叉树T 
if (T) { 
printf("%c",T->data); 
PreOrderTraverse(T->lchild); 
PreOrderTraverse(T->rchild); 


void InOrderTraverse(BiT *T) { 
// 中序遍历二叉树T 
if (T) { 
InOrderTraverse(T->lchild); 
printf("%c",T->data); 
InOrderTraverse(T->rchild); 


void PostOrderTraverse(BiT *T) { 
// 后序遍历二叉树T 
if (T) { 
PostOrderTraverse(T->lchild); 
PostOrderTraverse(T->rchild); 
printf("%c",T->data); 


void main() { 
printf("先序建树:"); 
BiT *T=CreateBiTree(T); 
printf("\n先序遍历:"); 
PreOrderTraverse(T); 
printf("\n中序遍历:"); 
InOrderTraverse(T); 
printf("\n后序遍历:"); 
PostOrderTraverse(T); 
getchar();getchar(); 
}

4 楼

我也不是很会~在网上搜的~~呵呵~~我也学习学习~~嘿嘿~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册