Python0219

时间:2019-02-19
本文章向大家介绍Python0219,主要包括Python0219使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Python0219总结

一、AVL树(带有平衡条件的查找树)

左右子树高度差不大于1
通过插入(4个条件) 删除(不考虑)的不平衡条件
单旋转:左旋和右旋
双旋转:先局部旋转 再整体旋转(先左后右,先右后左)

实现:

1,判断插入操作是否破坏平衡
2,选择单旋还是双旋
(1)对该结点的左儿子的左子树进行一次插入。(右旋)
(2)对该结点的左儿子的右子树进行一次插入(先左后右)
(3)对该结点的右儿子的左子树进行一次插入(先右后左)
(4)对该结点的右儿子的右子树进行一次插入。(左旋)
3,旋转

二,红黑树

一颗接近平衡树的树
特性:
节点时红色或黑色
根节点一定是黑色
每个叶节点都是黑色的空节点(NIL节点)
每个红节点的两个子节点都是黑色的
从任一节点到其每一个节点的所有路径都包含相同数目的黑色节点

平衡树缺点:提高查询速度,降低插入速度
红黑树缺点:相对平衡树稍微降低查询速度,大大提高插入速度(降低了旋转次数)

三,伸展树

四,三叉树

五,树的遍历

先序遍历:根左右
中序遍历:左根右
后序遍历:左右根
例:
已知某二叉树的后序遍历序列是dabec,中序遍历序列是deabc,它的前序遍历序列是什么? 答:cedba

六、满二叉树 完全二叉树

七、哈希表

1.存储结构
(1)普通哈希表
(2)带有单向链表的哈希(冲突)
(3)单链表可换成查找树
2.散列函数 x%n
3.锁 分段锁

八、哈夫曼编码

用于压缩:
w w r r r r r w w t y t t t i
r:5 0
t:4 10
w:4 01
y:1 101
i:1 110

压缩完:010100000010110101101010110