树的概念
由一个或多个(n>=0)结点构成有限集T,有且仅有一个结点称为根(root),当n>1时,其余的结点分为m(m>=0)个互不相交的有限集合T1 T2...,每个集合本身又是棵树,称作根树的子树。
树的结构特点
1,非线性结构,有一个前驱,但可能有多个直接后继。
2,树的定义具有递归行,树中还有树。
3,树可以为空即结点个数为0。
若干术语
根 ,即根结点(没有前驱)
叶子,即终端结点,(没有后继)
森林,指m棵不相交的集合
有序树, 结点各子结点树从左至右有序,不能互换。
无序树, 结点各子节点可以互换位置。
双亲, 即上层的那个节点(patent)
孩子, 即下层结点的子树(child)
兄弟. 同一双亲的同层结点(sibling)
堂兄 即双亲位于同一层的结点,但并非同一双亲cousin
结点 即树的数据元素
结点的度 结点挂接的子树数
结点层次 从根结点到该层的层数。
终端结点 即度为0的结点,即叶子
分支结点 除树根以外的结点
树的度 结点度的最大值
树的深度(或高度) 所以结点曾次最大值
二叉树
n(n>0)个结点有限集合,由一个根结点以及两颗互不相交的分别称为左子树和右子树的二叉树组成
逻辑 一对二(1:2)
基本特点
1,每个结点最多只有两棵子树
2,左子树和右子树次序不能颠倒(有序树)。
基本形态
o o o o Ø
/ \ / \
o o o o
二叉树性质
1,在二叉树的第i层至多右2^(i-1)个节点;(i>0)
2,深度为k的二叉树至多右2^(k)-1个结点;
3 ,
4具有n个结点的完全二叉树的深度必为log2(n)+1;
5,对完全二叉树,若从上至下,从左至右编号,则编号为i的结点,其左孩子编号为2i,其有孩子编号为2i+1;其双亲编号为i/2(i=1时为根,除外)
满二叉树,
一颗深度为k且有2^k-1个节点的二叉树。
完全二叉树,除最后一层外,每一层上的结点均达到最大值,在最后一层只缺少若干右边的若干节点。
不是完全二叉树 的补上空结点即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现