数据结构(C语言版)严蔚敏(树、二叉树的相关概念笔记)
数据结构(C语言版)严蔚敏(树的相关概念笔记)
1. 树中一个节点的孩子个数称为该节点的度,树中节点的最大度数称为树的度;
2. 度大于0的节点称为【分支节点】(非终端节点),度为0的节点称为【叶子节点】(也称终端节点);
3. 节点的层次从根节点算起,根节点为第一层,他的子节点为第二层,依次类推。【节点的深度】是从根节点开始自顶向下累加的。【节点的高度】是从叶子节点开始自底向上逐层累加的。【树的高度(深度)】是树中节点的最大层数;
4. 【有序树和无序树】树中节点的各个子树从左至右是有次序的,不能互换,称该树为有序树,否则称为无序树;
5. 【路径和路径长度】树中两个节点之间的路径指的是由这两个节点之间所经过的节点序列构成的,而路径的长度指的是路径上所经过的边的个数。
树的性质
1. 树中的节点数等于所有节点的度数加1
2. 度为m的树中第i层至多由m^(i-1)个节点
3. 高度为h的m叉树至多有(m^k-1)/(m-1)个节点
4. 具有n个节点m叉树最小高度为[log m (n(m-1)+1)]再向上取整
1. 二叉树中序遍历的非递归实现
访问过程:
需要借助一个【栈】。
- 沿着根的左孩子,依次入栈,直到左孩子为空,说明已经找到可以输出的结点。
- 栈顶元素出栈并访问;若其右孩子为空,继续执行2步骤;若其右孩子不为空,将右子树转执行1步骤。
参考代码:
void InOrder2(BiTree T){Stack S;InitStack(S);BiTree p=T;while(p||!IsEmpty(S)){if(p){Push(S,p);// 当前节点入栈p = p->lchild;}else{Pop(S,p);visit(p);p = p->rchild;} }
}
2. 二叉树先序遍历的非递归实现
先序遍历只需把访问节点操作放在入栈操作的前面(相比较中序遍历)。
void PreOrder2(BiTree T){Stack S;InitStack(S);BiTree p=T;while(p||!IsEmpty(S)){if(p){visit(p);Push(S,p);// 当前节点入栈p = p->lchild;}else{Pop(S,p);p = p->rchild;} }
}
数据结构(C语言版)严蔚敏(树、二叉树的相关概念笔记)相关推荐
- 数据结构(C语言版)严蔚敏->二叉树(链式存储结构)的构造及其几种遍历方式(先序、中序、后序、层次)和线索二叉树
二叉树每个节点至多只有两棵子树(即二叉树中不存在度大于2的节点),并且二叉树的子树有左右之分,其次序不能任意颠倒. 1. 二叉树 二叉树一般采用链式存储结构,用链表节点来存储二叉树中每个节点.在二叉树 ...
- 数据结构(C语言版)严蔚敏---图的操作的相关代码
1. 将邻接表转换成邻接矩阵 main.cpp void Convert(ALGraph G,MGraph &M){M.vexnum = G.vexnum;M.arcnum = G.arcnu ...
- c语言实现bf算法的定位函数,数据结构c语言版严蔚敏清华大学出版社第四章串.ppt...
数据结构c语言版严蔚敏清华大学出版社第四章串 模式匹配(定位) 设有主串S和子串T(将S称为目标串,将T称为模式串),在主串S中,从位置start开始查找,如若在主串S中找到一个与子串T相等的子串,则 ...
- 数据结构(C语言版)严蔚敏(字符串的模式匹配算法--KMP算法)
数据结构(C语言版)严蔚敏(字符串的模式匹配算法–KMP算法) 1.暴力匹配算法 // 暴力匹配算法 int Index2(SString S,SString T) {// S是主串,T是子串int ...
- 数据结构(C语言版 严蔚敏著)——树
· 树(tree)是n(n>=0)个结点的有限集.当n=0时成为空树,在任意一颗非空树中: //这里只需掌握定义,重点在二叉树 -有且仅有一个特定的称为根(Root)的结点: -当n>1时 ...
- 数据结构c语言版严蔚敏 顺序表
说来惭愧由于贪玩,数据结构挂科了,现在重新学一遍数据结构,用博客督促一下自己,希望各位同学引以为戒,贪玩一时爽,痛苦永留存. 本文主要以严老师的数据结构书为主. 结构类型 listsize代表这个顺序 ...
- 数据结构(C语言版)严蔚敏->排序
排序 1. 插入排序 1.1 直接插入排序 1.2 折半插入排序 1.3 希尔排序(Shell Sort) 2.交换排序 2.1 冒泡排序 2.2 快速排序 3. 选择排序 3.1 简单选择排序 3. ...
- 数据结构(C语言版 严蔚敏 编著)课后习题答案
转自 https://blog.csdn.net/Bamboo_shui/article/details/72433523 (原文没第八章答案) 数据结构(C语言版 第2版)课后习题答案 严蔚敏 ...
- 《数据结构》C语言版 严蔚敏版本 学习笔记
笔者的话: 严蔚敏版本的这本<数据结构>脉络清晰,第二到第六的章节围绕绪论展开,而书本封面处也有本书结构框图,希望读者在学习的同时能够对照结构框图,搭建知识框架. 第一章 绪论 早期计算机 ...
最新文章
- 三次握手、四次挥手理解
- 组合模型---贝叶斯模型平均
- 扩展webupload插件,增加ui界面
- 前端html,css基础总结
- 解决Tomcat.exe或者startup.bat 一闪无法打开的问题
- 机房收费系统合作版(二):透过显示上机人数品味如何做到全心全意为人民服务
- 记录最近待学习的内容
- 看见的力量 – (II) 影响地图
- 如何将UTF-8转换为UTF-8n
- 【原创】构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)—托管资源优化—垃圾回收机制深度剖析...
- HDU 1063 [Exponentiation]高精度
- IE6 与 GZIP, BUG汇总
- java tostring apache_apache lang ToStringBuilder java类的使用
- eplan好看的电缆图表_EPLAN电缆图表模板
- 雷达波形样式_雷达技术的发展趋势概述
- 移动端app 文档交接模版
- Tinder活号技术在YouTube上面居然有用模拟器和浏览器玩明白了使用谷歌下载的
- BT下载面临历史性转折
- 有关LaaS、PaaS、SaaS概念认识
- Idea使用起来反应比较慢
热门文章
- MobileFaceNets: Efficient CNNs for Accurate RealTime Face Verification on Mobile Devices
- 蓝牙核心规范V5.3版本有这些变动,你需要知道的都在这里
- Jmeter多线程并发和压测结果分析
- Tangent Element调色台的设计与功能
- 更高级的高级语言应该长什么样?
- 案例驱动式Python学习笔记【第六篇】电子宠物
- protues用一片74hc595控制两位数码管
- 用css控制点击穿透
- python读取dta文件_python – 带有大型.dta文件的Pandas read_stata()
- 斐波那契数列谈矩阵(1)