算法与数据结构学习 11 排序二叉树
来源:互联网 发布:家庭记账软件排行 编辑:程序博客网 时间:2024/06/03 18:50
1.节点定义
struct TreeNode{int data;TreeNode *lChild;TreeNode *rChild;};2.前序,中序,后续遍历
void PreOrder(TreeNode *&p){if (NULL == p)return;cout << p->data << ' ';PreOrder(p->lChild);PreOrder(p->rChild);}void MidOrder(TreeNode *&p){ //中序遍历即从小到大打印节点if (NULL == p)return;MidOrder(p->lChild);cout << p->data << ' ';MidOrder(p->rChild);}void PosOrder(TreeNode *&p){if (NULL == p)return;PosOrder(p->lChild);PosOrder(p->rChild);cout << p->data << ' ';}
3.节点插入
int InsertTreeNode(TreeNode *&myTree, int data){TreeNode *NewNode = new TreeNode;NewNode->data = data;NewNode->lChild = NULL;NewNode->rChild = NULL;if (myTree == NULL){//如果根节点不存在,即没有节点,把当前节点当做根节点myTree = NewNode;return 1;}else{if (data < myTree->data){InsertTreeNode(myTree->lChild, data);}else{InsertTreeNode(myTree->rChild, data);}return 1;}return 0;}
4.数组到树的转化
void BuildTree(TreeNode *&myTree, int *a, int len){for (int i = 0; i < len; i++){InsertTreeNode(myTree, a[i]);}}
5.树的高度
int CaculateHeight( TreeNode *p){if (NULL == p) return 0;int left = 0;int right = 0;left = CaculateHeight(p->lChild);right = CaculateHeight(p->rChild);return (left > right) ? (++left) : (++right);}6.测试
void main(){//int ss[] = { 1, 6, 3, 7, 3, 5, 0 };int ss[] = { 5, 6, 7, 8, 1, 2, 3, 5, 6, 7, 8, 5, 6, 7, 8, 9 };int len = (sizeof(ss)) / (sizeof(int));TreeNode *myTree = NULL;BuildTree(myTree, ss, len);cout << CaculateHeight(myTree) << endl;PreOrder(myTree); cout << endl;MidOrder(myTree);cout << endl;PosOrder(myTree);cout << endl;}
0 0
- 算法与数据结构学习 11 排序二叉树
- 数据结构与算法学习05:二叉树
- 数据结构与算法学习-二叉树
- 【数据结构与算法】二叉树
- 数据结构与算法-二叉树
- 算法与数据结构 - 二叉树
- 数据结构与算法:二叉树
- 数据结构与算法:二叉树
- 数据结构与算法-二叉树
- 【数据结构和算法15】二叉树排序
- 数据结构和算法二叉树排序
- 新手学习数据结构与算法---冒泡排序
- 算法与数据结构学习 07 快速排序
- 算法与数据结构学习 08 归并排序
- 算法与数据结构学习 09 堆排序
- java数据结构与算法学习1-排序
- 数据结构与算法学习-堆排序
- 数据结构与算法学习:冒泡排序
- R语言的修仙之道--R语言之后天境界
- map关联容器问题,内部数据按照键值的大小排序,无论插入数据的顺序!
- 自定义View原理
- android ImageView实现变暗效果
- Mybatis使用之分页
- 算法与数据结构学习 11 排序二叉树
- expdp 后台查看
- iOS第三方类库IIViewDeck使用方法
- 从服务器上拿日志文件的命令
- Python简单的验证码识别
- kithings选择Wi-Fi物联网芯片的五大原则(第二篇)
- BP神经网络,C++调用matlab engine
- 简单判断字符串是否是回文
- Eclipse3.4 下搭建PHP 开发环境 xampp