
数据结构
文章平均质量分 50
一剑寒霜十四州
这个作者很懒,什么都没留下…
展开
-
数据结构一: 算法的时间复杂度和空间复杂度
在优快云和阅读的书籍中学习了很多知识,现在对数据结构的知识进行系统性的复习,所以写下数据结构的博客,加深自己对数据结构的认识。什么是数据结构?数据结构的对象就是数据,数据是储存在计算机的内存中的,所以数据结构就是数据在内存中存在某种关系的数据元素的集合。数据结构的分类...原创 2018-12-23 18:03:35 · 253 阅读 · 0 评论 -
数据结构二:顺序表
前面忙着考试,今天就把数据结构里面最常见的顺序表结构总结一下。 什么是顺序表? 顺序表是一种数据结构,在百度百科中是这样描述的:计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,...原创 2019-01-10 21:52:40 · 224 阅读 · 0 评论 -
数据结构三(2):链表的进阶操作(1)
昨天讲了链表的结构和基本操作,今天就稍微进阶一下,看一看链表稍微高端一点的操作。 首先将头文件给出来: #pragma once#include<assert.h>#include<iostream>#include<stack>using namespace std;typedef int datatype;struct Node...原创 2019-01-23 23:14:58 · 205 阅读 · 0 评论 -
数据结构三(3):链表的进阶操作(2)
接着上一篇博客继续,头文件补充了一些:#pragma once#include<assert.h>#include<iostream>#include<stack>using namespace std;typedef int datatype;struct Node{ datatype d; Node* next;};class L...原创 2019-01-24 22:01:20 · 146 阅读 · 0 评论 -
数据结构四:栈
栈是一个数据结构,其特点是后进先出,类似于枪的弹夹,先压进弹夹的子弹是最后才射出去的。这个容器就是栈,现在我们将一组数据:1,2,3,4,5,6,7存入栈中: 将5,6,7取出,按照栈的特性,先取7,再取6,最后取5,过程用图表示: 用代码实现栈很容易,在STL中stack就是栈,为了更好的理解栈,我们自己实现其中的某些功能:首先是头文件#pragma onc...原创 2019-01-26 22:22:44 · 243 阅读 · 0 评论 -
数据结构五:队列
队列也是一种数据结构,它的特点和栈不同,栈是后进先出,而队列是先进先出,并且只能从头出,从尾部进。队列的分类:顺序队列 循环队列 链式队列 优先级队列 ...顺序队列 顺序队列可以分为两种,一种是出队列时对头不动,就是:这种方法的缺点是如果一次出队大量元素的话就要搬移大量元素。还有一种是出队时对头移动:这种情况可能会导致假溢出,假溢出就是:队列中还有剩...原创 2019-01-27 23:21:04 · 198 阅读 · 0 评论 -
数据结构三:链表(LinkList)的原理及基本操作
什么是链表? 链表是一种数据结构,其特点是每一个结构都带有指向下一个节点的指针和一个data,相较于顺序表来说,链表在内存中的储存不需要连续,靠着指针寻找下一个节点,不支持随机访问,但是插入/删除的效率高(时间复杂度是 O(1))。 链表的分类 链表可以分为带头节点的单链表,不带头节点的单链表,双链表,双向循环链表等等。今天主要讲不带头节点的单链表。 链表...原创 2019-01-22 19:49:39 · 1969 阅读 · 0 评论 -
数据结构六:栈和队列的应用---最小栈,两个栈实现一个队列,两个队列实现一个栈,保证栈的合法性
实现一个最小栈,存在push、pop和返回最小值Min(O(1))操作 原理:定义一个结构体elem,包含data和min,第一次压栈时,将data = min,当每次压栈操作时都比较栈顶的min和data,如果min大于data就给min重新赋值,使得栈顶的min永远是最小值,最后返回栈顶的min就可以了。头文件:#pragma once#include<iostr...原创 2019-01-29 00:02:10 · 201 阅读 · 0 评论