二叉树的创建与前序中序后序遍历的递归实现
2014-06-27 00:21
411 查看
一切都在代码里:
输入:
#include <iostream> using namespace std; typedef char Item; typedef struct BTNode { Item data; BTNode * lChild; BTNode * rChild; }BTNode,*BTree; void InitBTree(BTree *T); void CreateBTree(BTree *T); void DestroyBTree(BTree *T); void PreOrderTraverse(BTree T); void InOrderTraverse(BTree T); void PostOrderTraverse(BTree T); void Copy(Item *dest,Item *src); void Copy(Item *dest,Item *src) { *dest = *src; } void InitBTree(BTree *T) { *T = NULL; } void CreateBTree(BTree *T) { Item item; cin>>item; if(item=='#') { *T = NULL; } else { *T = new BTNode; Copy(&((*T)->data),&item); CreateBTree(&((*T)->lChild)); CreateBTree(&((*T)->rChild)); } } void DestroyBTree(BTree *T) { if(*T) { DestroyBTree(&((*T)->lChild)); DestroyBTree(&((*T)->rChild)); delete (*T); *T = NULL; } } void PreOrderTraverse(BTree T) { if(T) { cout<<"node :"<<T->data<<endl; PreOrderTraverse(T->lChild); PreOrderTraverse(T->rChild); } } void InOrderTraverse(BTree T) { if(T) { InOrderTraverse(T->lChild); cout<<"node :"<<T->data<<endl; InOrderTraverse(T->rChild); } } void PostOrderTraverse(BTree T) { if(T) { PostOrderTraverse(T->lChild); PostOrderTraverse(T->rChild); cout<<"node :"<<T->data<<endl; } } int main() { BTree tree; InitBTree(&tree); CreateBTree(&tree); cout<<"Pre Order:"<<endl; PreOrderTraverse(tree); cout<<"In Order:"<<endl; InOrderTraverse(tree); cout<<"Post Order:"<<endl; PostOrderTraverse(tree); DestroyBTree(&tree); getchar(); }
输入:
ABD##E##CF###输出:
Pre Order: node :A node :B node :D node :E node :C node :F In Order: node :D node :B node :E node :A node :F node :C Post Order: node :D node :E node :B node :F node :C node :A
相关文章推荐
- 二叉树的简单递归实现(创建,遍历,高度,大小)
- 二叉树的简单递归实现(创建,遍历,高度,大小)
- 二叉树的创建,遍历,查找,查找父节点,深度,大小等的递归实现
- 二叉树的创建、相关操作、递归和非递归式实现三种遍历
- 二叉树的创建(先序创建的)及先序遍历 中序遍历 后序遍历的递归和非递归实现
- 数据结构与算法学习记录--二叉树的创建,递归遍历,非递归遍历的实现
- 采用二叉链表结构实现二叉树,并以递归遍历思想实现二叉树的创建、二叉树的遍历(先序、中序、后序和层次遍历)
- 二叉树的创建,先序、中序、后序遍历的递归实现以及层序遍历
- 二叉树(一):二叉树的创建以及三种遍历方法的递归实现
- 不疯魔,不成活!——二叉树的创建、遍历(递归实现)等操作。
- c++实现二叉树的非递归创建以及非递归先序、中序、后序遍历
- 二叉树创建、前序遍历、中序遍历、后序遍历 的 递归与非递归实现 以及 层次遍历
- Java创建二叉树及其遍历的递归和非递归实现
- ::递归实现——创建二叉树 ----> 装入数据--->遍历---> 显示 --->销毁
- 二叉树 前序遍历的非递归实现 中序遍历的非递归实现 后序遍历的非递归实现 创建二叉树
- java实现二叉树的创建及三种递归遍历
- 递归方法实现二叉树的创建,遍历
- 二叉树的创建、前序中序后序递归遍历与非递归遍历、层序遍历以及二叉树简单应用的C语言实现
- javascript实现二叉树的创建,遍历,添加,查找最大值最小值和指定值的寻找及删除功能——递归的多次运用
- C++实现二叉树所有操作 -- 创建递归遍历迭代遍历拷贝清空查找