二叉树的创建
来源:互联网 发布:稳定网络的软件 编辑:程序博客网 时间:2024/05/02 04:24
/************************************************************************* Create Date :2014/12/10* Author :zhuang_569 * Description :二叉树的创建*************************************************************************/#include "iostream"using namespace std;typedef char ELEM_TYPE;typedef structBiTNode{ ELEM_TYPEdata; struct BiTNode *lchild; struct BiTNode *rchild;}BiTNode,*pBiTNode;//函数声明pBiTNode CreateBeTree(void);void PreOrderTraverse(pBiTNode pRoot);void InOrderTraverse(pBiTNode pRoot);void PostOrderTraverse(pBiTNode pRoot);int main(void){pBiTNode pBeTreeRoot;pBeTreeRoot = CreateBeTree();//创建二叉树根节点cout<<"二叉树先序输出:";PreOrderTraverse(pBeTreeRoot);cout<<"\n"<<"二叉树中序输出:";InOrderTraverse(pBeTreeRoot);cout<<"\n"<<"二叉树后序输出:";PostOrderTraverse(pBeTreeRoot);return 0;}//利用先序遍历建立二叉树pBiTNode CreateBeTree(void){pBiTNode pRoot;ELEM_TYPE ch;cin >> ch;if('@' == ch){pRoot = NULL;}else{pRoot = new BiTNode;//为新的节点分配内存空间pRoot->data = ch;pRoot->lchild = CreateBeTree();pRoot->rchild = CreateBeTree();}return pRoot;//返回根节点的地址}//先序遍历二叉树void PreOrderTraverse(pBiTNode pRoot){if(NULL != pRoot){ cout << pRoot->data;PreOrderTraverse(pRoot->lchild);PreOrderTraverse(pRoot->rchild);}}//中序遍历二叉树void InOrderTraverse(pBiTNode pRoot){if(NULL != pRoot){InOrderTraverse(pRoot->lchild);cout << pRoot->data;InOrderTraverse(pRoot->rchild);}}//后序遍历二叉树void PostOrderTraverse(pBiTNode pRoot){if(NULL != pRoot){PostOrderTraverse(pRoot->lchild);PostOrderTraverse(pRoot->rchild);cout << pRoot->data;}}
树:
测试结果:
0 0
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建。
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的 创建
- 二叉树的创建
- 二叉树的创建
- 数据结构【二叉树】 二叉树的创建
- 二叉树的二叉链表创建
- 二叉树的创建、遍历
- 完全二叉树的创建
- 平衡二叉树的创建
- 线索二叉树的创建
- 2014.11
- JVM-GC算法
- 我的网站设计单词
- SharePoint 2013 日历根据Category显示不同颜色
- Altium Designer电路仿真
- 二叉树的创建
- 问题
- UIColor
- leetcode-Rotate Image
- JavaBean 浅谈
- CentOS6.3 系统中su,su -,sudo三命令讲解
- nyoj592spiral grid
- Html+js实现表格可编辑,并能动态添加删除行
- python 字符串