随笔分类 -  算法学习 / 数据结构

摘要:1. 定义 根其实就是一个完全二叉树 堆中某个结点的值总是不大于或不小于其父节点的值 堆中的根节点的值是整个堆的最大值或最小值 对于数组[t]位置: 左二子为[2t] 右儿子为[2t+1] 父节点为[t/2] 大根堆:父节点的值>=两个子节点的值 小根堆:父节点的值<=两个子节点的值 2. 插入数据 阅读全文
posted @ 2023-12-23 22:02 拾墨、 阅读(31) 评论(0) 推荐(0)
摘要:1. 树的直径 定义:树的任意两个节点之间最长的路径 一颗树可以有很多条直径 如图,任意黄色节点到红色节点都可以是直径 树的直径的中间节点被称为树的中心(图中m节点)。 如果一条直径上有偶数个点,那么中间两个点都可以称作树的中心。 树的中心到其他点到最长路径最短 求法:用两次搜索求得。第一次从任意一 阅读全文
posted @ 2023-12-11 21:33 拾墨、 阅读(60) 评论(0) 推荐(0)
摘要:1. 引入 树状数组可以用logn的时间进行单点修改和区间求和 在传统数组中进行单点修改时间o1,区间求和on 前缀和数组中进行单点修改时间on,区间求和o1 树状数组则是两者取了个平均 2. 定义 给定初始数组a1,a2,a3...an 设树状数组c1,c2,c3...cn \[c_i = a_{ 阅读全文
posted @ 2023-09-21 00:06 拾墨、 阅读(63) 评论(0) 推荐(0)
摘要:## 定义 **具有单调性的栈结构,该数据结构的目的是快速找到与一个元素距离最近的元素** ## 过程(摘自oiwiki) 插入 将一个元素插入单调栈时,为了维护栈的单调性,需要在保证将该元素插入到栈顶后整个栈满足单调性的前提下弹出最少的元素。 例如,栈中自顶向下的元素为 \{0,11,45,81\ 阅读全文
posted @ 2023-07-28 22:00 拾墨、 阅读(68) 评论(2) 推荐(0)
摘要:一些定义 先序,中序,后序遍历中的序是遍历根的顺序 比如中序就是先看左子树再看根再看右子树 层序遍历就是这个树的bfs序列 深度:节点v到根r的唯一通路所经过边的数目。记作depth(v)。 约定根节点深度为0。设depth(r) == i,则r属于第i层 高度:树T中所有节点深度的最大值称作该点的 阅读全文
posted @ 2023-07-24 21:42 拾墨、 阅读(45) 评论(0) 推荐(1)