数据结构1 目录 时间复杂度 有序树的构造与先序中序后序遍历 哈夫曼树与哈夫曼编码

1.学习数据结构的意义
1>数据量巨大
2>人对于大量数据使用意识增加
3>计算机算力的提升,计算一次的时间0.2~0.3ns
4>合理规划数据在数据层面保持对数据高度可观的操作性

2.常见的时间复杂度
1>概念:x是数据量,x>1且x足够大,要想达到某种数据操作目的而需要的计算次数,就是时间复杂度
2>
时间复杂度排序o(1)<o(logn)<o(n)<o(nlogn)<o(n^2)
3>
o(1) 按索引值查找
o(n) 按数组值查找
o(logn) 二分查找、折半查找 每次查找剩余之前一半的数 x/2^n

4>常见的数据结构
数组(有序、无序)
链表(有序、无序)有序链表不能用于折半查找
栈(先进后出)队列(先进先出)

*无序树
完全树(对应数组)
满树
哈夫曼树(最优二叉树,应用场景用于压缩)
*有序树(左子树的值要比根节点小,右子树的值要比根节点大,相等的左右都可以放,不具有这个特点的叫无序树)
平衡树
红黑树(近似二叉平衡树)
B类树(多叉平衡树)B树 B+树
非平衡树(如何转平衡树)
*图
无向图
有向图
有向带权图
5>常见的数据结构增删改查的时间复杂度
6>非平衡树如何转平衡树

遍历方式
广度遍历

深度遍历:先序遍历
中序遍历
后序遍历
在这里插入图片描述

先序 12 8 4 1 6 7 10 19 15 17 24 21 31
中序 1 4 6 7 8 10 12 15 17 19 21 24 31
后序 1 7 6 4 10 8 17 15 21 31 24 19 12
中序遍历有序树可以得到有序序列

哈夫曼树 哈夫曼编码
1.路径和路径长度:从根节点到后代节点的道路称为路径,通路当中分支节点的个数称为路径长度,若规定根节点的层数为1,则从根节点到第L层节点的长度为 L-1
2.节点的权:若树中节点赋给一个有着某种意义的数值,就叫这个节点的权
3.带权路径长度:从根节点到该节点的路径长度与该节点的权的乘积
4.树的带权路径长度:树中所有叶子节点带权路径之和,记作WPI,权值越大的节点离根节点越近的二叉树就是最优二叉树,也叫哈夫曼树。
例如 13 8 7 3构造哈夫曼树
在这里插入图片描述

选最小的3和7加起来做10和8一层
以此类推……每次挑最小的两个组成一棵树,两个数的和作为根加入数组中进行新的构造。
i love baoding and dog
空格:4
o:3
d:3
a:2
n:2-
g:2
i:2
l:1
v:1
e:1
b:1
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值