‘’’
名词:
根(头) 边(经过的路途) 叶子节点(没有子节点) 兄弟(一个父亲) 祖父和孙子 路径(经过的边) 路径的长(边数)
深度 (从根到指定节点的路径长 从上到下) 高 (制定的根到最下面的叶子节点)
祖先 后裔 真祖先 真后裔
class TreeNode():#一个节点包含数据 第一个儿子 下一个兄弟 其中下一个兄弟指的是自己的下一个兄弟
object data(数据)
TreeNode firstchild(第一个儿子)
TreeNode nextsibling(下一个兄弟)

实现树
class TreeNode():
def init(self,data,firstchild,nextSibling):
self.data = data
self.firstchild = firstchild
self.nextSibling = nextSibling
树的遍历
深度优先 一根一根的找
广度优先 一层一层的找
先序遍历 根左右
中序遍历 左根右
后序遍历 左右根
二叉树
最多有两个孩子
showAll 便利
。contains包不包含 返回布尔类型
remove删除
ADT抽象数据类型
表达式树
二叉查找树 搜索树
树自带查重功能,相等不存
avl树带有平衡条件的查找树(平衡树)
左右子树高度不大于一
插入删除能打破循环
但旋转分左旋和右旋
双旋转先局部旋转在整体旋转 (先左后右或先右后左)
实现
1,判断插入操作是否破坏平衡
2,选择单旋还是双旋
(1) 对该结点的左儿子的左子树进行了一次插入。(右)
(2) 对该结点的左儿子的右子树进行了一次插入。(先左后右)
(3) 对该结点的右儿子的左子树进行了一次插入。(先右后左)
(4) 对该结点的右儿子的右子树进行了一次插入。(左)
3,旋转
二,红黑树(公认红黑色 叫别的也行)
一颗接近平衡树的树

二叉树 三叉 多叉树
查找树
红黑树#是对平衡树的一种补充 平衡树
特性:
节点是红色或黑色
根节点一定是黑色
每个叶节点都是黑色的空节点(NIL节点)(本身的叶子节点后面补上两个子节点)
每个红节点的两个子节点都是黑色的
从任一节点到其每个叶子节点的所有路径都包含相同数目的黑色节点
平衡树优缺点:提高查询速度,降低插入速度(相对于查找树)
红黑树的优缺点:相对平衡树稍微降低查询速度,大大提高插入速度(相对于平衡树)
哈希表 也叫散列表
普通哈希表 列表就是哈希表
带有单向链表的哈希(冲突)列表坐标后面跟链表 为了不替换
单链表可换成查找树
2,散列函数 x%n
3, 锁,分段锁 不让两个同时访问 出现错误 分段锁是分几个区域锁
八,哈夫曼编码
压缩
w w r r r r r w w t y t t t i
r:5
t:4
w:4
y:1
i:1
把w r t 分别命名成1 0 11
转码。。。。。。
‘’’

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值