数据结构学习——栈和队列

数据结构学习记录DAY7 :树

  • 树(tree

    树的概念是什么呢?树是一种“一对多”关系的数据元素的集合,其中有一些术语需要先进行定义

    • 结点:树中的每个元素都称为一个“结点”(node)
    • 根:有一个特定的结点被称为根结点或树根(root)。该结点没有更上一层的结点
    • 叶子结点(子结点):除根结点之外的其余数据元素被分为 m(m > 0)个互不相交的集合 ,其中每一个集合本身也是一棵树,被称作原树的子树(subtree)。
    • 父子关系:以下图为例,0001结点为0000结点和0002结点的父结点,0000结点和0002结点为0001的子节点。0000结点和0002结点互为兄弟结点。
    • 度:一个结点拥有子树的数量称为该结点的度;
    • 树的度:一棵树中,最大的结点的度称为树的度;
    • 结点的层次:从根开始定义起,根为第1层,根的子结点为第2层,以此类推;
    • 树的高度或深度:树中结点的最大层次;
    • 结点的祖先:从根到该结点所经分支上的所有结点;
    • 子孙:以某结点为根的子树中任一结点都称为该结点的子孙;
    • 森林:由 棵互不相交的树的集合称为森林。
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ec5cRDvo-1657284848526)(E:%5CTypora’s%20photo%5Cimage-20220708192900313.png)]
  • 树的重要特点:

    • 空集合也是树,称为空树。空树中没有结点
    • 特殊树:
      • 无序树:树中任意节点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树;
      • 有序树:树中任意节点的子结点之间有顺序关系,这种树称为有序树;
      • 二叉树:每个节点最多含有两个子树的树称为二叉树;
      • 满二叉树:叶节点除外的所有节点均含有两个子树的树被称为满二叉树;
      • 完全二叉树:除最后一层外,所有层都是满节点,且最后一层缺右边连续节点的二叉树称为完全二叉树;
      • 哈夫曼树(最优二叉树):带权路径最短的二叉树称为哈夫曼树或最优二叉树。

性质:

  • 树的结点数 = 结点总度数+1
  • 度为m的树和m叉树的区别
    • 度为m的树——至少有一个度为m个孩子
    • m叉树——每个结点最多只能有m个孩子的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sFP2edXU-1657284848529)(E:%5CTypora’s%20photo%5Cimage-20220708193803486.png)]

最常用的表示方法是使用广义表的方式。下图用广义表表示为:

(A , ( B ( E ( K , L ) , F ) , C ( G ) , D ( H ( M ) , I , J ) ) )

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y7TjLevL-1657284848530)(E:%5CTypora’s%20photo%5Cimage-20220708193854126.png)]

个人记录的话,写一些奇怪的东西也可以的罢。其实今天老师讲概念的时候我在想昨天做的烂的一比的八皇后问题,根本想不明白

二叉树

无序的二叉树由于其各个结点之间没有联系,故此不做研究,仅考虑有序二叉树

二叉树是n(n≥0)个结点的有限集合,每个结点至多有两个孩子结点因此:

  • 空树可以是二叉树,即n = 0。
  • 它的每一个子节点都是一颗二叉树

特点:

①每个结点至多只有两棵子树

②左右子树不能颠倒(二叉树是有序树)

二叉树具有以下几个性质:

  1. 二叉树中,第 i 层最多有 2 i-1 个结点。
  2. 如果二叉树的深度为 K,那么此二叉树最多有 2K-1 个结点。
  3. 二叉树中,终端结点数(叶子结点数)为 n0,度为 2 的结点数为 n2,则 n0=n2+1(总结点数为n1)
满二叉树

满二叉树如果二叉树中除了叶子结点,每个结点的度都为 2,则此二叉树称为满二叉树。

特点:

①只有最后一层有叶子结点

②不存在度为 1 的结点

③按层序从 1 开始编号,结点 i 的左孩子为 2i,右孩 子为 2i+1;结点 i 的父节点为 i/2 (如果 有的话)

满二叉树除了满足普通二叉树的性质,还具有以下性质:

  1. 满二叉树中第 i 层的节点数为 2n-1 个。

  2. 深度为 k 的满二叉树必有 2 k -1 个节点 ,叶子数为 2 k-1。

  3. 满二叉树中不存在度为 1 的节点,每一个分支点中都两棵深度相同的子树,且叶子节点都在 最底层。

  4. 具有 n 个节点的满二叉树的深度为 log2(n+1)。

完全二叉树

完全二叉树如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布, 则此二叉树被称为完全二叉树。

二叉树的顺序存储 二叉树的顺序存储结构就是使用一维数组存储二叉树中的结点,并且结点的存储位置, 就是数组的下标索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值