二叉树的创建与前序中序后序遍历的递归实现
来源:互联网 发布:ubuntu在线音乐软件 编辑:程序博客网 时间:2024/05/16 12:54
一切都在代码里:
#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 :Anode :Bnode :Dnode :Enode :Cnode :FIn Order:node :Dnode :Bnode :Enode :Anode :Fnode :CPost Order:node :Dnode :Enode :Bnode :Fnode :Cnode :A
0 0
- 二叉树的创建与前序中序后序遍历的递归实现
- 二叉树的创建遍历 递归实现
- 二叉树的创建与遍历(递归)
- 二叉树的创建与递归遍历
- 数据结构与算法学习记录--二叉树的创建,递归遍历,非递归遍历的实现
- 二叉树的创建、前序中序后序递归遍历与非递归遍历、层序遍历以及二叉树简单应用的C语言实现
- 二叉树创建、遍历的递归和非递归实现
- Java实现二叉树的创建、递归/非递归遍历
- 二叉树的创建遍历-递归与非递归
- 二叉树的创建与前中后序遍历递归非递归
- 二叉树的创建和递归与非递归遍历
- Java实现二叉树的递归与非递归遍历
- 二叉树的递归遍历与非递归算法实现
- 二叉树的递归遍历与非递归算法实现
- 递归与非递归实现二叉树的遍历
- 二叉树的递归与非递归遍历实现
- 二叉树遍历的递归与非递归实现
- 二叉树遍历的递归与非递归实现
- CodeForces 7D Palindrome Degree 字符串hash
- UVa1260 - Sales
- OCP-1Z0-051 补充题库 第32题 ALL、ANY、IN
- listView懒加载解决快速拖动卡屏问题
- (2014.06.23-2014.06.29)七天的学习小记
- 二叉树的创建与前序中序后序遍历的递归实现
- 黑马程序员---网络编程
- python初学
- OCP-1Z0-051 补充题库 第33题 sql*plus命令
- 项目设计之一-------------策略模式应用
- 关于spring+struts+hibernate集成的问题
- Windows下scikit-learn的安装
- 博客初创
- 查表法在java程序中的应用