数据结构
文章平均质量分 85
Ellenjing
这个作者很懒,什么都没留下…
展开
-
python实现线性表
前几年经历过python从入门到放弃,最近重拾python的体会是,如果熟悉或精通类C语言,整体上可以快速、轻松的掌握基本特性。因为既然是编程语言,很多特性都是举一反三、触类旁通的,上手成本较小。工作上有了用武之地,也可以用它来巩固数据结构。原创 2022-09-15 18:55:40 · 738 阅读 · 1 评论 -
数据结构-手撕红黑树
手撕红黑树1. 红黑树的性值1.1 平衡条件每个节点非黑即红根节点是黑色叶节点(NIL)是黑色如果一个节点是红色,则它的两个子节点都是黑色从根节点出发到所有叶节点路径上,黑色节点数量相同1.2最长路径和最短路径长度关系?根据平衡条件第4、5点,最短路径都是黑色;最长路径红黑相间;最长是最短的两倍;1.3平衡调整的终极法门插入调整站在祖父节点看删除调整站在父节点看插入和删除的情况处理一共五种1.4新插入的节点的颜色红色,因为插入黑色会引发失衡;插入红色不一定会失衡。2.原创 2021-08-22 11:35:33 · 246 阅读 · 0 评论 -
单调队列和单调栈
概念一种具有单调性的队列,分为单调递增队列和单调递减队列。适合场景维护区间最值,即,适合解决RMQ(rang maximum/minimum query)问题,也称之为滑动窗口区间最值问题。若维护区间最小值,则需要维护一个单调递增的序列;若维护区间最大值,则需要维护一个单调递减的序列。维护单调队列性值的操作入队操作:队尾入队,会把之前破坏单调性的元素都从队尾移出(维护单调性)。出队操作:如果队首元素超出区间范围,就将元素从队首出队。1.1 习题1) 239. 滑动窗口最大值一个整数数组原创 2021-07-25 22:01:04 · 585 阅读 · 1 评论 -
深搜(DFS)& 广搜(BFS)
深搜(DFS)& 广搜(BFS)原创 2021-08-08 11:53:19 · 1027 阅读 · 2 评论 -
数据结构 - AVL树
手撕AVL树在开始正式学习之前,引用一句很经典的话,介绍给大家,也给自己留一个mark:数据结构 - 定义一种性值并且维护这种性值1. 二叉排序树性值:左子树 < 根节点右子树 > 根节点用途:解决与排序相关的搜索问题操作:插入:删除:* 删除度为0的节点:直接删除即可* 删除度为1的节点:删除后,将唯一子树连接到父节点* 删除度为2的节点:找到前驱节点(小于当前节点的最大节点),将当前删除节点值替换为前驱节点值,并在左子树中删除前驱节点(该前驱节点一定是度为0或原创 2021-08-12 20:50:29 · 158 阅读 · 0 评论