二叉树
来源:互联网 发布:平板可以开淘宝店吗 编辑:程序博客网 时间:2024/05/21 10:42
感觉二叉树这个章节是比较有难度的,打算看完树的这一章后,就开始对之前学习的数据结构做一些总结,巩固一下基础。关于二叉树目前就只看了一点点,觉得递归的知识在这一章中用的特别多,至于递归是怎么实现的,脑子里也是一片朦胧,就只知道是调自己那么一回事,要说出个所以然来,还是不知道怎么去描述这一过程。感觉还是要慢慢来,看一点写一点。
#include <iostream>using namespace std;typedef int Elem_Type;typedef enum{ OK = 0,//正常 ERROR = -1,//逻辑异常 OVER = -2//内存异常}Status;typedef struct BiTNode{ Elem_Type data;//数据域 struct BiTNode *Lchild;//左孩子 struct BiTNode *Rchild;//右孩子 BiTNode();//构造函数,用于生成结点时自动初始化}BiTNode;BiTNode::BiTNode(){ data = 0; Lchild = NULL; Rchild = NULL;}Status PreOrderTraverse(BiTNode *root)//先序遍历{ if(!root) return ERROR; cout<<root->data<<" "; PreOrderTraverse(root->Lchild);//递归遍历左子树 PreOrderTraverse(root->Rchild);//递归遍历右子树 cout<<endl; return OK;}Status InOrderTraverse(BiTNode *root)//中序遍历{ if(!root) return ERROR; InOrderTraverse(root->Lchild);//递归遍历左子树 cout<<root->data<<" "; InOrderTraverse(root->Rchild);//递归遍历右子树 cout<<endl; return OK;}Status PostOrderTraverse(BiTNode *root)//后序遍历{ if(!root) return ERROR; PostOrderTraverse(root->Lchild);//递归遍历左子树 PostOrderTraverse(root->Rchild);//递归遍历右子树 cout<<root->data<<" "; cout<<endl; return OK;}int BiTreeDepth(BiTNode *root)//二叉树的深度{ if(!root)//如果结点为空返回0,否则递归遍历左右子树求最大值 return 0; return (BiTreeDepth(root->Lchild) > BiTreeDepth(root->Lchild) ? BiTreeDepth(root->Lchild) : BiTreeDepth(root->Lchild))+1;}int NodeNum(BiTNode *root)//二叉树节点的总数{ if(!root)//如果结点为空返回0,否则递归遍历左右子树求和 return 0; return 1 + NodeNum(root->Lchild) + NodeNum(root->Rchild);}Status CreateBiTree(BiTNode *root)//先序构造二叉树{ Elem_Type temp; cin>>temp; if(temp == -1) root = NULL; else { root->data = temp; CreateBiTree(root->Lchild); CreateBiTree(root->Rchild); } return OK;}int main(void){ return 0;}
3 0
- 二叉树、二叉堆
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 二叉树
- 内联函数和宏定义的区别
- [Python]网络爬虫(五):urllib2的使用细节与抓站技巧
- Android-Universal-Image-Loader图片异步加载并缓存
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- linux基本网络操作命令
- 二叉树
- 正则表达式
- Oracle 11g安装体会
- Java4Android学习(第18~20集)继承
- ListView的常用属性
- c++ 类 封装 抽象 继承 与 多态 OOP
- 解决qt程序在板子上不能正常显示中文的问题
- MOVE.jar+sumo悲剧的一天
- 忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(9)链表