22计算机408考研—数据结构—树定义,遍历,Huffman,并查集(持续更新)(22计算机国家线)

2024年 7月 4日 作者 gong2022 0

手把手教学考研大纲范围内树定义,遍历,huffman,并查集 22考研大纲数据结构要求的是c/c++,笔者以前使用的都是java,对于c++还很欠缺, 如有什么建议或者不足欢迎大佬评论区或者私信指出 初心是用最简单的语言描述数据结构
talk is cheap. show me the code. 理论到处都有,代码加例题自己练习才能真的学会

??树的基本概念

??
??二叉树顺序存储的定义??

树的基本概念

我们还记得??线性表???是 ??一个结点连着一个结点??
??树???相对于线性表来说是 ??一个结点连着多个结点??

1 ?结点?:树中每一个单元就叫一个结点(例如,r,a,b……)
2 ?结点的度?: 拥有子树的数量,换句话说,??一个结点连着几个结点??,结点的度就是多少(r连着abc r的度就是3,a连着de a的度就是2)
3 ?树的度?: 树内??各个结点的度的最大值??(该树的度为3,结点的度最大为3)
4 ?叶子(终端结点)?: 度为0的结点称为叶子或者终端结点(叶子为:jkefgmni)
5 ?非叶子(非终端结点)?: 度不为0的结点。除根结点外,非终端结点也称为内部结点。
6 ?双亲和孩子(父结点和子结点)?: 结点的子树的根称为该结点的孩子,该结点称为孩子的双亲双亲也称为父节点,孩子也称为子结点(abc是r的孩子,r是abc的双亲)
7 ?兄弟?: 同一个双亲(父结点)的孩子之间互称兄弟(ghi互称兄弟)
8 ?祖先?: 从根到该结点所经分支上的所有结点(m的祖先为rch)
9 ?子孙?: 以某结点为根的子树中的任一结点都称为该结点的子孙。(a的子孙为de jk)
10 ?层次?: 根结点为第一层,根结点的孩子为第二层依次向下加……
11 ?堂兄弟?: 双亲在同一层的结点互为堂兄弟。(f的堂兄弟为de ghi)
12 ?树的深度(高度)?: 树中结点的最大层次称为树的深度或高度(图示深度为4)
13 ?有序树和无序树?:将数种结点的各子树看成从左到右有次序的(不能互换),则为有序树,否则为无序树 (有序树中最左边的子树的根称为第一个孩子,最右边称为最后一个孩子)
14 ?森林?: m棵互不相交的树的集合,对于每个根结点来说,子树的集合即为森林

二叉树顺序存储的定义

每个结点有两个子结点的树