学习python 第十四天

一、AVL树(带有平衡条件的查找树) 平衡树
左右子树高度差不大于1
插入 删除(不考虑)

单旋转:左旋和右旋
双旋转:先局部,再整体(先左后右 先右后左)

实现:
1、判断插入操作是否破坏平衡:左右子树高度差不大于1
2、选择单旋还是双旋
(1)对该节点的左儿子的左子树进行了一次插入(单旋 右)
(2)对该节点的右儿子的右子树进行了一次插入(单旋 左)
(3)对该节点的左儿子的右子树进行了一次插入(双旋 先左后右)
(4)对该节点的右儿子的左子树进行了一次插入(双旋 先右后左)
3、旋转

二、红黑树
一颗接近平衡树的树
特性:
节点是红色或黑色
根节点一定是黑色
每个叶子节点都是黑色的空节点(NIL节点)
每个红节点的两个子节点都是黑色的
从任一节点到其每个叶子节点的所有路径都包含相同数目的黑色节点
平衡树优缺点:提高查询速度,降低插入速度
红黑树优缺点:相对平衡树而言稍微降低查询速度,大大提高插入速度

三、伸展树
一种能够自我平衡的二叉查找树,它能在均摊O(log n)的时间内完成基于伸展操作的插入、查找、修改和删除操作。
四、三叉树
是二叉树的扩展,结构分为左子树、中子树、右子树。
五、树的遍历
先序遍历(根 左 右)
中序遍历(左 根 右)(有排序功能)
后序遍历(左 右 根)

六、满二叉树:除最后一层无任何子节点外,每一层上的所有节点都有两个子节点的二叉树。
完全二叉树:除最后一层外,每一层上的节点数均达到最大值,在最后一层上只缺少右边的若干节点。
最小二叉树:带权路径长度最小的二叉树

七、哈希表(散列表)
1、存储结构
(1)、普通哈希表
(2)、带有单向链表的哈希表(避免冲突)
(3)、单链表可换成查找树
2、散列函数(散列算法)
x % n n:列表的长度
3、锁,分段锁

八、哈夫曼编码
压缩

九、图
图(Graph)是一种复杂的非线性结构,在图结构中,每个元素都可以有零个或多个前驱,也可以有零个或多个后继,也就是说,元素之间的关系是任意的。

猜你喜欢

转载自blog.csdn.net/weixin_44446703/article/details/87708759