本文主要是介绍二叉树遍历-递归-前中后序-C代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <stdio.h>//定义二叉树结点链式存储结构
struct BiTNode{int data;//数据域struct BiTNode *lchild,*rchild;//左右孩子指针
}*BiTree;int main(){//初始化结点struct BiTNode node1,node2,node3,node4,node5,node6,node7;node1=(struct BiTNode){1,&node2,&node3};node2=(struct BiTNode){2,&node4,&node5};node3=(struct BiTNode){3,&node6,&node7};node4=(struct BiTNode){4,NULL,NULL};node5=(struct BiTNode){5,NULL,NULL};node6=(struct BiTNode){6,NULL,NULL};node7=(struct BiTNode){7,NULL,NULL};//建树BiTree=&node1;node1.lchild=&node2;node1.rchild=&node3;node2.lchild=&node4;node2.rchild=&node5;node3.lchild=&node6;node3.rchild=&node7;PreOrder(BiTree);printf("\n");InOrder(BiTree);printf("\n");PostOrder(BiTree);printf("\n");return 0;
}//先序遍历
int PreOrder(struct BiTNode *BiTree){if(BiTree!=NULL){printf("%d ",BiTree->data);PreOrder(BiTree->lchild);PreOrder(BiTree->rchild);}
}//中序遍历
int InOrder(struct BiTNode *BiTree){if(BiTree!=NULL){InOrder(BiTree->lchild);printf("%d ",BiTree->data);InOrder(BiTree->rchild);}
}//后序遍历
int PostOrder(struct BiTNode *BiTree){if(BiTree!=NULL){PostOrder(BiTree->lchild);PostOrder(BiTree->rchild);printf("%d ",BiTree->data);}
}
这篇关于二叉树遍历-递归-前中后序-C代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!