Creat Binary Tree and by means of Postorder and Preorder through the Tree

来源:互联网 发布:土逗公社 知乎 编辑:程序博客网 时间:2024/06/05 00:26
#define NULL 0#include "stdio.h"#include "stdlib.h"//二叉链表结点定义typedef struct tree {   int data;        struct tree *lchild; struct tree *rchild; }*TREE;// 先序建立二叉树struct tree *create(struct tree *BT,int k){  struct tree *p;     int x;     p=(struct tree *)malloc(sizeof(struct tree));       scanf("%d",&x);     if(x!=0)       {       if(!(p=(struct tree *)malloc(sizeof(struct tree))))        exit(0);  //生成主根或子树根      p->data=x;        p->lchild=NULL;       p->rchild=NULL;       if(k==0)        BT=p;       if(k==1)         BT->lchild=p;       if(k==2)        BT->rchild=p;       create(p,1);//搜索建立左子树       create(p,2);//建立右子树       }       return(BT);}// 先序遍历int visit(struct tree *BT){   if(BT!=NULL)         {       printf("%d ",BT->data);       visit(BT->lchild);       visit(BT->rchild);         }return 0;}void postorder(TREE ptr){if(ptr){postorder(ptr->lchild);postorder(ptr->rchild);printf("%d ",ptr->data);}}void main(){  struct tree *pp;      pp=(struct tree *)malloc(sizeof(struct tree));  pp=create(pp,0);  visit(pp); printf("\n");postorder(pp);printf("\n");system("pause");}
二叉树的构造以及,前序遍历和后序遍历的实现。
0 0
原创粉丝点击