二叉树的建立

来源:互联网 发布:淘宝开网店哪弄发货单 编辑:程序博客网 时间:2024/05/20 21:21

#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
typedef struct BiTNode{
  char data;
  struct BiTNode *lchild;
struct BiTNode *rchild;
}BiTNode,*BiTree;

char ch[]="abc##de#g##f###";//输入二叉树字符串
int i=0;
int CreateBiTree(BiThrTree &T)
{
    //char ch;
    //scanf("%c",&ch);
    if(ch[i]=='#') { T=NULL;i++;}
    else
    {
       if(!(T=(BiThrNode*)malloc(sizeof(BiThrNode))))
   exit(-1);
       T->data=ch[i];
       i++;
       CreateBiTree(T->lchild);
       CreateBiTree(T->rchild);
    }
    return 1;
}

//中序遍历
InOrder(BiThrTree T)
{
   if(T)
   {
     if(T->lchild)  InOrder(T->lchild);
     printf("%c,",T->data );
     if(T->rchild)  InOrder(T->rchild);
  
   }
}

//前序遍历
PreOrder(BiThrTree T)
{
   if(T)
   {
        printf("%c,",T->data );
       if(T->lchild)  PreOrder(T->lchild);
    
     if(T->rchild)  PreOrder(T->rchild);
  
   }
}

void main()
{
    BiThrTree T;
    CreateBiTree(T);
    printf("/n中序遍历T=(");
    InOrder(T);
    printf(")/n");
    printf("/n前序遍历T=(");
    PreOrder(T);
    printf(")/n");


}

原创粉丝点击