二叉树的建立和中序、先序、后序遍历

来源:互联网 发布:mac更新后部分变英文 编辑:程序博客网 时间:2024/05/18 15:56
#include<stdio.h>#include<stdlib.h>#define TYPE     inttypedef struct Btree {TYPE data;struct Btree *lchild;struct Btree *rchild;}BTREE;BTREE *btree_creat(){BTREE *tree;TYPE data;printf("input num\n");scanf("%d", &data);if (data == -1){tree = NULL;}else{tree = (BTREE *)malloc(sizeof(BTREE));if (tree == NULL){return NULL;}tree->data = data;//tree->lchild = NULL;//tree->rchild = NULL;tree->lchild = btree_creat();tree->rchild = btree_creat();}return tree;}void btree_destroy(BTREE *tree){if (tree != NULL){btree_destroy(tree->lchild);tree->lchild = NULL;btree_destroy(tree->rchild);tree->rchild = NULL;}}void traverse_in_order(BTREE *tree){if (tree != NULL){traverse_in_order(tree->lchild);printf("%d\n",tree->data);traverse_in_order(tree->rchild);}}void traverse_pre_order(BTREE *tree){if (tree != NULL){printf("%d\n", tree->data);traverse_pre_order(tree->lchild);traverse_pre_order(tree->rchild);}}void traverse_post_order(BTREE *tree){if (tree != NULL){traverse_post_order(tree->lchild);traverse_post_order(tree->rchild);printf("%d\n", tree->data);}}int main(void){BTREE *bin_tree = NULL;bin_tree = btree_creat();printf("in order traverse\n");traverse_in_order(bin_tree);printf("pre order traverse\n");traverse_pre_order(bin_tree);printf("post order traverse\n");traverse_post_order(bin_tree);btree_destroy(bin_tree);return 0;}


 

原创粉丝点击