二叉树三种遍历代码实现

来源:互联网 发布:淘宝卖家加入运费险 编辑:程序博客网 时间:2024/05/21 10:19

二叉树三中遍历代码实现

实现代码:
#include <stdio.h>#include <stdlib.h>typedef struct BiTNode{int data;BiTNode *lchild,*rchild;}BiTNode,*BiTree;void Insert(BiTNode **tree,int val){BiTNode *temp=NULL;if(!(*tree)){temp = (BiTNode *)malloc(sizeof(BiTNode));temp->lchild = temp->rchild = NULL;temp->data = val;*tree = temp;return; }if(val<(*tree)->data){Insert(&(*tree)->lchild,val);}else if(val>(*tree)->data){Insert(&(*tree)->rchild,val);}}void PreOrder(BiTNode *T){if(T){printf("%d  ",T->data);PreOrder(T->lchild);PreOrder(T->rchild);}}void InOrder(BiTNode *T){if(T){InOrder(T->lchild);printf("%d  ",T->data);InOrder(T->rchild);}}void PostOrder(BiTNode *T){if(T){PostOrder(T->lchild);PostOrder(T->rchild);printf("%d  ",T->data);}}void DeleteTree(BiTNode *tree){if(tree){DeleteTree(tree->lchild);DeleteTree(tree->rchild);free(tree);}}int main(void){BiTNode *root;BiTNode *tmp;int i,a[7];root = NULL;printf("输入7个数:");    for(i=0;i<7;i++){    scanf("%d",&a[i]);Insert(&root,a[i]);    }printf("前序遍历:");PreOrder(root);printf("\n中序遍历:");InOrder(root);printf("\n后序遍历:");PostOrder(root);printf("\n");DeleteTree(root);}

输出结果:

输入7个数:3 4 5 6 7 8 9前序遍历:3  4  5  6  7  8  9中序遍历:3  4  5  6  7  8  9后序遍历:9  8  7  6  5  4  3请按任意键继续. . .


原创粉丝点击