二叉树的建立和遍历算法流程图(二叉树的遍历算法c语言)

嵇启儿
导读 大家好,乐天来为大家解答以下的问题,关于二叉树的建立和遍历算法流程图,二叉树的遍历算法c语言这个很多人还不知道,现在让我们一起来看看...

大家好,乐天来为大家解答以下的问题,关于二叉树的建立和遍历算法流程图,二叉树的遍历算法c语言这个很多人还不知道,现在让我们一起来看看吧!

1、#include #include typedef struct node{ int data; struct node *lchild,*rchild; }*treetp,tree; treetp create (treetp t,int c); void print1(treetp); void print2(treetp); void print3(treetp); int number=0; void main() { treetp t=0,r; r=create (t,0); printf("前序排列 :"); print1 (r); printf("中序排列 :"); print2 (r); printf("后序排列 :"); print3 (r); } treetp create(treetp t,int c) { treetp p,di; do{ scanf("%d",&c); if (t==0) { t=(treetp)malloc(sizeof(tree)); t->lchild=t->rchild=0; t->data=c; } else { p=t; while(p!=0) { di=p; if(c<(p->data)) p=p->lchild; else p=p->rchild; } if(c<(di->data)) { treetp NEWdi=(treetp) malloc(sizeof(tree)); NEWdi->lchild=NEWdi->rchild=0; NEWdi->data=c; di->lchild=NEWdi; } else { treetp NEWdi=(treetp) malloc(sizeof(tree)); NEWdi->lchild=NEWdi->rchild=0; NEWdi->data=c; di->rchild=NEWdi; } } ++number; }while(c!=0); printf("叶子的数量:%d",number); return t; } void print1(treetp t) { if (t!=0) { printf("%d ",t->data); print1(t->lchild); print1(t->rchild); } } void print2(treetp t) { if (t!=0) { print2(t->lchild); printf("%d ",t->data); print2(t->rchild); } } void print3(treetp t) { if (t!=0) { print3(t->lchild); print3(t->rchild); printf("%d ",t->data); } }。

本文分享完毕,希望对大家有所帮助。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!