二叉树的建立和中序、先序、后序遍历
2012-10-30 20:51
441 查看
#include<stdio.h> #include<stdlib.h> #define TYPE int typedef 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; }
相关文章推荐
- JS建立二叉树&先序、中序、后序遍历
- 二叉树建立,递归,非递归,前序,中序,后序遍历
- 输入完全二叉树的先序序列,用#代表虚结点(空指针),如ABD###CE##F##,建立二叉树的二叉链表。 (2)写出对用二叉链表存储的二叉树进行先序、中序和后序遍历的递归和非递归算法。 (3)写出
- c语言实现二叉树的建立与前序、中序、后序、层序遍历
- C++二叉树的建立、前序、中序、后序遍历
- [LeetCode] Construct Binary Tree from Inorder and Postorder Traversal 由中序和后序遍历建立二叉树
- 建立二叉树,实现二叉树的先序遍历、中序和后序遍历的非递归算法
- python实现二叉树的建立以及遍历(递归前序、中序、后序遍历,队栈前序、中序、后序、层次遍历)
- [LeetCode] 106. Construct Binary Tree from Inorder and Postorder Traversal 由中序和后序遍历建立二叉树
- 先序扩展序列建立二叉树;先序、中序、后序遍历的递归算法(树)
- 温习二叉树的建立和先序 中序 后序遍历 嵌套
- 二叉树基本操作的递归实现(二叉树建立,先序,中序,后序,深度的递归遍历。广度优先,高度优先的非递归遍历)
- 二叉树各种相关操作(建立二叉树、前序、中序、后序、求二叉树的深度、查找二叉树节点,层次遍历二叉树等)(C语言版)
- [算法与数据结构] - No.7 二叉树建立及其前序、中序、后序遍历
- 二叉树的建立、前序、中序、后序遍历
- 由前序和中序遍历建立二叉树并后序遍历输出二叉树
- 二叉树的建立以及前序、中序、后序遍历的递归和非递归实现
- 树的遍历 有后序遍历和中序遍历建立二叉树,并输出层次遍历
- 树之二叉树的建立与四种遍历(前序,中序, 后序, 层次)及树的深度
- 根据先序和中序或后序和中序建立二叉树及树的遍历