数据结构复习总结

一、树

  1. 树的存储结构

  • 双亲表示法

在双亲表示法中,因为每个节点中都有其双亲的数组下标,所以在查找每个节点的双亲和祖先是非常容易的,但找孩子节点或兄弟节点就非常麻烦了。

  • 孩子链表表示法

将每个节点的孩子结点构成一个单链表,称为孩子链表n个节点的数有n个,这样的孩子链表为了方便起见,我们将每个节点存放在一个顺序表中,顺序表的每个元素有两个域,一个是存放该节点的数据值,另一个是存放该节点的第一个孩子的地址,孩子节点也有两个域,一个域是存放该孩子节点在顺序表中的位置(数组下标),另一个域是存放下一个孩子的地址。

  • 孩子兄弟法

孩子兄弟法存储结构是一种二叉链表,链表中每个节点包括三个与数据值和两个指针,其中一个指针指向该节点的最左边第一个孩子,而另一个指针则向该节点的下一个兄弟。

二、二叉树

  1. 性质

  • 在二叉树的第n层上至多有2ⁿ-1个结点。

  • 深度为k的二叉树中至多有2ⁿ-1个结点。

  • 在⼀棵二叉树中,除了叶子结点(度为0)之外,就剩下度为2(n2)和1(n1)的结点了。则树的 结点总数为T = n0+n1+n2;在二叉树中结点总数为T,而连线数为T-1。所以有:n0+n1+n2-1 = 2*n2+n1;最后得到n0 = n2+1。

  • 具有 n 个结点的完全二叉树的深度为 [log2n] + 1 向下取整。

  • 如果有一棵有 n 个结点的完全二叉树(其深度为 [log2n] + 1,向下取整)的结点按层次序编号 (从第 1 层到第 [log2n] + 1,向下取整层,每层从左到右),则对任⼀结点 i(1 <= i <= n)有 : 1.如果 i = 1,则结点 i 是二叉树的根,无双亲;如果 i > 1,则其双亲是结点 [i / 2],向下取 整 2.如果 2i > n 则结点 i 无左孩子,否则其左孩子是结点 2i 3.如果 2i + 1 > n 则结点无右孩子,否则其右孩子是结点 2i + 1

  1. 存储结构

  • 顺序存储

  • 链式存储

  1. 扩展二叉树

  • 二叉排序树(二叉查找树、二叉搜索树) 性质 1、如果他的左子树不空,则左子树上所有结点的值均小于它的根结点的值。 2、若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值。 3、它的左、右树又分为二叉排序树。 很显然,二叉排序树的定义是一个递归形式的定义,所以对于二叉排序树的操作都是基于递归的 形式。 二叉排序树既然名字中带有排序二字,这就是它相对于普通二叉树的优势所在了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值