数据结构杂谈

数据结构闲谈

空间复杂度

空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度

平衡树

如何根据平衡因子平衡树
平衡因子 = 右子树的高度 - 左子树的高度
-1 : 表示左子树比右子树高
1 : 表示右子树比左子树高
0 : 表示左子树和右子树等高

哈夫曼树

最优二叉树 不一定是完全二叉树
1 对于给定的有各自权值的 n 个结点,构建哈夫曼树有一个行之有效的办法:
在 n 个权值中选出两个最小的权值,对应的两个结点组成一个新的二叉树,且新二叉树的根结点的权值为左右孩子权值的和;
2 在原有的 n 个权值中删除那两个最小的权值,同时将新的权值加入到 n–2 个权值的行列中,以此类推;
重复 1 和 2 ,直到所以的结点构建成了一棵二叉树为止,这棵树就是哈夫曼树。

WPL值的计算
首先给出路径和路径长度的概念,从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径,路径上的分支数目称作路径长度。树的路径长度是从树根到每一结点的路径长度之和。
树的带权路径长度为树中所有叶子结点的带权路径长度之和,通常记作WPL.

带权路径长度 = (0.19 +0. 20 + 0.35) * 2 + 0.12 * 3 + (0.04 + 0.10) * 4 = 2.4
2 3 4 为树的深度 每一层的值×深度然后加起来来就是wpl

完全二叉树

完全二叉树:叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树
.
根据完全二叉树的性质,设度为0的结点数目为n0,度为1的结点数目为n1,度为2的结点数目为n2,则有n2=n0-1。n为奇数,因此n1为0。反之则为1

是一种完全二叉树 或者类完全二叉树

堆的修复

一组记录排序码为(5 11 7 2 3 17),
如果堆的有序状态因为某个节点变得比它的父节点更大而打破,那么就需要通过交换它和它的父节点来修复堆。从最后一个非叶结点逐渐往上浮,直到有序。
img
堆:他的左子树的值<他自己<他的右子树的值

n个节点图的总边数有向为n(n-1),无向是n(n-1)/2

邻接矩阵

img
广度优先遍历:
1) 从节点V0出发,V0入队,访问V0并将V0出队,V0的邻接点有V3、V2、V1,将它们入队;
队列:V3 V2 V1
2) 访问V3并将V3出队,V3的邻接点有V2、V0(已访问,不入队),将V2入队;
队列:V2 V1 V2
3) 访问V2并将V2出队,V2的邻接点有V3(已访问,不入队)、V1、V0(已访问,不入队),将V1入队;
队列:V1 V2 V1
4) 访问V1并将V1出队,V1的邻接点有V2、V0,但都已访问,不入队;
队列:V2 V1
5) 继续访问V2,由于V2已访问,所以忽略;继续访问V1,由于V1也已访问,所以也忽略;此时遍历结束;
所以从节点0出发按广度优先遍历的节点序列是:V0 V3 V2 V1

线性表

一个表有两端,栈是在表的末端进行插入和删除
栈的实现方式(存储层次)有两种:顺序结构存储,链式结构存储;
栈应用的典型实例是用“算符优先法进行表达式求值”

串又称为字符串,是一种特殊的线性表,其特殊性体现在数据元素是一个字符,也就是说串是一种内容受限的线性表。(栈和队
列是操作受限的线性表)

常见线性结构:线性表、栈、队列、双队列、串、数组
常见非线性结构:二维数组、***数组、广义表、树(二叉树等)

随笔:未完待续

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值