数据结构
文章平均质量分 95
JGJY
这个作者很懒,什么都没留下…
展开
-
【数据结构】链表(含链式前向星)
链表为什么断不了?是拿振金做的吗? 说了队列,说了栈,无论什么数据结构都离不开只能按一定顺序储存的结果,向特定位置加入某值的复杂度达不到O(1)O(1)O(1)。天空一声巨响,链表闪亮登场 链表就是这千千万万数据结构中的一个例外。 链表的模型就是一条链!我们可以向这条链的任意一个地方加入一个新的节点,也可以删除任意的一个节点。...原创 2021-09-05 21:14:31 · 170 阅读 · 0 评论 -
【数据结构】堆
堆,是一种十分有用的数据结构,其优异的时间复杂度决定了它在求区间最大值(或最小值)中的地位。尽管堆也有极大的局限性,但它仍然是我们在算法竞赛中的一种常用数据结构。概念 堆,本质上是一个完全二叉树。同时,堆满足父亲节点一定不大于(或不小于)儿子节点的性质。常见的堆有二叉堆与斐波那契堆等。从时间复杂度上来讲,斐波那契堆是比二叉堆要优一些的(但本蒟蒻没学23333)。为了方便,我们实际上使用的一般是STLSTLSTL提供的优先队列(二叉堆)。二叉堆的实现1.手写实现(不建议) 要手写实现二叉堆,原创 2021-05-27 18:30:32 · 125 阅读 · 0 评论 -
栈 与 队列
本篇博客来谈一谈栈与队列的爱恨情仇。 作为两个OIOIOI中最常见的数据类型,栈与队列可以说是必不可少的。1.栈 相信所有人都对电梯不陌生,对于单门开的电梯而言,如果其横向面积够小(只能容下一个人),那么显然先进电梯的人只能当在他后面进来的人出来后才能出电梯,而栈就像是这样的一个电梯,它仅允许栈顶的元素出栈,如图:在图中,最大的一个上端不封口的矩形就代表一个栈,每一组元素仅能从beginbeginbegin一端进行插入。例如,现在栈里共有A,B,C,D,E,FA,B,C,D,E,FA,B,C,D原创 2021-05-26 20:24:54 · 80 阅读 · 0 评论 -
线段树总结[经典、权值、动态开点]
ps:这是本蒟蒻的第一篇数据类型博客。 线段树,这是一种非常常用、普遍的信息统计技术。其基本思想是分治(二分),该数据类型本质上是一个储存区间数据二叉树原创 2021-05-11 16:05:29 · 937 阅读 · 0 评论