数据结构
文章平均质量分 87
徒手装机甲
这个作者很懒,什么都没留下…
展开
-
四种基础数据结构的变种应用
最近重新复习了一下一些基础的数据结构,今天介绍四种基础结构的变种应用,分别是,单调栈,单调队列,01字典树和带权并查集,四种基础的数据结构都是很常见的,我们就直接介绍变种后的这些数据结构如何应用。每个部分都介绍一个最经典的例题。单调栈首先,顾名思义,单调栈指的就是栈内元素单调增或减的栈,单调栈可以维护的信息就是每个数前后第一个大于/小于他的数。这是单调栈的维护方法。单调递增栈:在保持栈内元素单调递增的前提下(如果栈顶元素大于要入栈的元素,将将其弹出),将新元素入栈。单调递减栈:在保持栈内元素单调递减原创 2021-05-26 15:01:57 · 135 阅读 · 0 评论 -
hash算法理解和应用
Hash模拟散列表这个问题要求我们把有限个数的数据范围较大的数,存储到一个较小的范围中,和离散化很像,实际上离散化就是一种特殊的hash方法,只是保证了有序,今天介绍的方法,是更常规的一种方法,或者说是一种存储结构。一般来说,hash表的存储结构分为两类,分别是开放寻址法,和拉链法,本质相差不多,但是拉链法所需空间更多,代码也更复杂,所以推荐大家使用开放寻址法来存储hash。一般来说,我们的hash函数设置起来可以用取模的方式来进行。严格来说就是对一个质数取模。找到第一个大于题目要求范围的质数来作为取模的原创 2021-05-25 17:24:36 · 279 阅读 · 0 评论 -
链表的几种写法(数据结构与算法课程1)
写在前面因为这个学期刚好在上数据结构和算法这门课,就打算就此机会写一系列关于所有数据结构的总结和简单应用的博客,也加强自己对这些数据结构的理解。这篇文章主要总结了单链表的几种不同形式的写法,并且分别介绍了每种写法的特点,大家可根据实际情况选择适合自己的算法。链表的简介链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存原创 2021-03-02 21:10:25 · 1082 阅读 · 0 评论 -
STL容器的简单应用
在算法竞赛中,我们经常要用到c++所内置提供的容器来解决问题,今天我们就简单介绍三种容器的具体应用一.vector这个单词的本意应该是向量,在实际运用的过程中我们通常认为他是一个无限长的数组,至于他为什么能无限的原理,应该是开始先申请一个长度为n的空间,空间填满后,继续申请一个长度为2n的空间,将之前空间的内容复制下来,依次类推,保证不会爆空间关于vector的基本操作有如下几种1.初始化 1.初始化少量数据:列表初始化vector<type>a={1,2,3};等价于vecto原创 2020-07-24 15:58:28 · 129 阅读 · 0 评论