导读 今天小编肥嘟来为大家解答以上的问题。二叉树的遍历程序代码,二叉树的遍历算法c语言相信很多小伙伴还不知道,现在让我们一起来看看吧!1、
今天小编肥嘟来为大家解答以上的问题。二叉树的遍历程序代码,二叉树的遍历算法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); } }。
本文就为大家分享到这里,希望小伙伴们会喜欢。