数据结构--树与二叉树
树的相关概念及术语
练习题:求树中叶子结点的方法
解:
**求树中叶子结点的方法:**sum(node)=sum(分支)+1
sum(分支)=度的数目 * 结点数目
设叶子结点的数目为x,
建立等式:3+4+5+2+x=4 * 3+3 * 4+2 * 5+1 * 2+0 * x+1
解得x为23
二叉树的定义,性质以及存储结构
注意:二叉树不是树(n=0的时候为空二叉树,而树要求n!=0)二叉树是一种树形结构度为2.
二叉树的性质
性质很重要,背下来
练习题:求二叉树的总结点数
方法:叶子结点数=度为2的结点数+1
设叶子结点为n0;
n0=20;//此处为叶子结点数,即度为0
n1=10+15=25;//此处求出只有左孩子或右孩子的结点数,即度为1
n2=n0-1=19;//此处求出度为2的结点数
所以:n=n0+n1+n2=64
满二叉树
完全二叉树的定义
完全二叉树的性质
注:完全二叉树,最多有一个度为一的结点。
特别注意此处的向下取整符号
练习题:求完全二叉树叶子结点数
解:根据性质5第三条,结点为100的完全二叉树,其父结点编号为最多到50,所以从51到100都是叶子结点。
练习题2
解:
(1)由于第六层为满二叉树所以前六层共有结点=2^6-1=63个//性质二:高度为k的二叉树,总结点数<=s ^ k -1,k为层数
之后再加上第七层的结点数
所以总共结点数为=2^6-1+10=73个
(2)方法一详解:
编号为73的叶子结点其父结点为73/2向下取整为36,所以从37开始就都为叶子结点
二叉树的存储
顺序存储
动态二叉链表
二叉链表中有n个结点,则其含有n+1个空指针
二叉树的遍历
先序,中序,后序遍历
解:
先序为:ABCDEFGHI
中序为:CDBEFAHGI
后序为:DCFEBHIGA
根据序列还原二叉树
方法: 先确定根节点(先序为第一个字母,后序为最后一个字母),在根据不同序列之间对比,将剩下的元素写为子树,之后按照同样地方法确定根节点。
遍历算法
遍历算法的应用~求给定二叉树的高度
求高度的关键是运用递归算法
设计算法求二叉树的结点数
设计算法求叶子结点数
练习题:非递归输出最后一个结点
二叉链表转化为顺序链表
数据结构--树与二叉树相关推荐
- 数据结构——树和二叉树章节思维导图
数据结构--树和二叉树章节思维导图
- 数据结构-树与二叉树-思维导图+小结
数据结构-树与二叉树-思维导图 1 数据结构-第五章-树与二叉树-思维导图 2 思维导图-补充 3 小结 3.1 知识点小结 3.2 习题小结 1 数据结构-第五章-树与二叉树-思维导图 数据结构 ...
- 王道——数据结构——树与二叉树(3)
系列文章目录 其他章节相关文章 王道--数据结构--栈和队列(1) 本章节其他相关文章 王道--数据结构--树与二叉树(1) 王道--数据结构--树与二叉树(2) 王道--数据结构--树与二叉树(4) ...
- 数据结构—树与二叉树
总第119篇 前言 之前谈到的线性表.栈和队列都是一对一的数据结构,但是现实中也存在很多一对多的数据结构,这篇要写的就是一种一对多的数据结构---树.全文分为如下几部分: 树的一些基本概念 树的存储结 ...
- C语言 数据结构 树和二叉树
树 1.树:是n节点的有限集.树是n(n=>0)个节点的有限集. n=0时成为空树. 在任意一颗非空树中:(1)有且仅有一个称为根的节点:(2)当n>0时,其余节点可分为m(m>0) ...
- 数据结构-树,二叉树,森林
树,二叉树,森林 王卓老师的数据结构课程笔记 树和二叉树 定义 结点之间有分支,具有层次关系 是n个结点的有限集. 若n = 0,称为空树: 若n > 0,则它满足如下两个条件: 有且仅有一个特 ...
- 数据结构树、二叉树、完全二叉树、二叉查找树、平衡二叉树、红黑树、B+树
树.二叉树.平衡二叉树.二叉搜索树 树的前序遍历.中序遍历和后序遍历 树的前序遍历.中序遍历和后续遍历是以遍历时根所在的位置顺序命名的.层次遍历即按层从上至下,从左至右遍历即可. 前序遍历:根-> ...
- 数据结构--树和二叉树
文章目录 树和二叉树 树 1.树的定义 2.树的逻辑表示 3.树的基本术语: 4.树的性质 5.树的基本运算 二叉树 二叉树的存储结构 二叉树的遍历 树和二叉树 树 1.树的定义 2.树的逻辑表示 树 ...
- 数据结构——树与二叉树
树与二叉树 一.树的定义: 1.定义:树(Tree)是n(n>=0)个节点的有限集,n=0时称为"空树".在任意一棵非空树中: ⒈有且仅有一个特定的称为根(root)的节点. ...
- Python数据结构与算法笔记(八):数据结构——树,二叉树和AVL树
树 class Node:def __init__(self, name, type='dir'):self.name = nameself.type = type #"dir" ...
最新文章
- Java 打印数组的方法
- linux支持hd610显卡吗,HD610相当于什么显卡 HD610和HD630的区别 (全文)
- 生物信息3天速成班—成为团队中不可或缺的人
- 【 FPGA 】FIR 滤波器之多相抽取器(Polyphase Decimator)
- opengl正方形绕点旋转_中考热点:再说旋转动点问题中的最值问题之提分攻略
- 各种主流数据库的比较
- [课程复习] 数据结构之经典题目回顾 (一)选择题、填空题1
- tf.nn.softmax
- jquery设置宽_JavaScript学习笔记(三十二) jQuery(中)
- 程序员表白代码python_程序员python表白代码
- HDU 2224 The shortest path
- 仿墨迹天气小程序源码(袋鼠天气)
- 手把手一步步用DataGridView 控件编写属于自己的日历
- linux长传大文件,linux大文件传输
- iOS 开启静音键时APP播放视频没有声音
- swift声明属性为某个类型同时遵循某协议
- 三菱FX5U系列PLC控制10轴设备成套资料打包三菱FX5U控制10轴伺服的设备成套电气图纸
- 各大邮箱网址用哪个好?企业内部邮箱哪个比较好用?
- 最新边信息推荐系统综述Research Commentary on Recommendations with Side Information: A Survey and Research Direc
- 软通动力:电子签是HR数字化的重要抓手