实现对于二叉树的前序、中序、后序的递归遍历

来源:互联网 发布:淘宝美女店主 编辑:程序博客网 时间:2024/05/08 05:58

实现对于二叉树的前序、中序、后序的递归遍历

/*** filename: tree.c** 利用递归方式实现对于二叉数的三种遍历** time:2014-8-15** ***/#include <stdio.h>#include <stdlib.h>typedef struct Bnode{int data;struct Bnode *lchild;struct Bnode *rchild;}BTree;BTree *create(){int num;BTree *t = NULL;scanf("%d",&num);if(num > 0)   {t = (BTree *)malloc(sizeof(BTree));t->data = num;t->lchild = create();t->rchild = create();}return t;}void PreorderTraverse(BTree *t){if( t!= NULL ){printf("%d ", t->data);PreorderTraverse(t->lchild);PreorderTraverse(t->rchild);}}void InorderTraverse(BTree *t){if( t!= NULL ){InorderTraverse(t->lchild);printf("%d ", t->data);InorderTraverse(t->rchild);}}void PostorderTraverse(BTree *t){if( t!= NULL ){PostorderTraverse(t->lchild);PostorderTraverse(t->rchild);printf("%d ", t->data);}}int main(){BTree *t;printf("Input number to create a tree:\n");t = create();printf("Preorder Traverse: ");PreorderTraverse(t);printf("\nInorder Traverse: ");InorderTraverse(t);printf("\nPostorder Traverse: ");PostorderTraverse(t);printf("\n");return 0;}


1 0
原创粉丝点击