##一、数据存储结构 数据存储的常用结构有:堆栈、队列、数组、链表。 ###1.1 堆栈 ① 先进后出 ② 压栈:存元素 ③ 弹栈:取元素 ###1.2 队列 ① 先进先出 ② 出队 ③ 入队 ###1.3 数组 ① 查找元素快:通过索引,可以快速访问指定位置的元素 ② 增删元素慢: 👐 指定索引 ...
分类:
其他好文 时间:
2020-11-19 12:28:51
阅读次数:
5
qemu数据结构分析 这里主要分析queue.h头文件中包含的四种数据结构:1.单链表 2.双链表 3.简单队列 4.尾队列 一、单链表 1.1 应用场景 适用于数据量大的集合并且没有过多删除动作的场景,也适用做LIFO(后进先出)队列。 1.2 定义 /* Singly-linked List d ...
分类:
其他好文 时间:
2020-10-29 10:18:08
阅读次数:
25
给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。 链接:https://leetcode-cn.com/problems/validate-stac ...
分类:
其他好文 时间:
2020-10-08 18:32:40
阅读次数:
20
dp[i] = max_{j ∈ [i-R,i-L]}( dp[j] + v(j+1,i) )。做前缀和后,对每种s[j]的值,开一个单调队列。每次将i-L入队、将i-R-1出队。用线段树维护每个队列的队首。转移时最区间最大值查询。 ...
分类:
其他好文 时间:
2020-08-17 16:57:59
阅读次数:
68
队列(Queue):与栈相对的一种数据结构,集合(Collection)的一个子类。队列允许在一端进行插入操作,而在另一端进行删除操作的线性表,栈的特点是后进先出,而队列的特点是先进先出。队列的用处很大,比如实现消息队列。Queue类关系图,如下图所示:注:为了让读者更直观地理解,上图为精简版的Queue类关系图。本文如无特殊说明,内容都是基于Java1.8版本。队列(Queue)1)Queue分
分类:
其他好文 时间:
2020-08-02 10:18:18
阅读次数:
73
邻接表储存结构 /*邻接表的边*/ typedef struct ArcNode { int adjvex; struct ArcNode *next; }ArcNode; /*邻接表的结点*/ typedef struct VNode { char date; ArcNode *firstarc; ...
分类:
编程语言 时间:
2020-07-28 17:32:12
阅读次数:
91
一个先进先出的容器,需要用到头文件 <queue>。 函数成员名 功能 返回值类型 que.empty() 判断队列是否为空,非空返回假,空返回真 bool que.size() 返回队列中元素的个数 unsigned long long que.push(x) 将元素 x 放进队尾 void qu ...
分类:
其他好文 时间:
2020-07-26 01:49:28
阅读次数:
48
单链表 # 实现单链表 class Node(object): '''定义一个节点''' def __init__(self,data): # 因为每次都需要生成一个节点,写到类里面便于保存 self.data = data # 保存节点的值 self.next = None # 默认将节点的指向为 ...
分类:
其他好文 时间:
2020-07-26 00:06:05
阅读次数:
67
既然是队列那么先要包含头文件#include <queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队 优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的 和队列基本操作相同: top 访问队头元 ...
分类:
编程语言 时间:
2020-07-23 16:30:46
阅读次数:
89
用C/C++编写二叉树的前序遍历,中序遍历,后序遍历(递归) 使用辅助队列的层序遍历(非递归) 特别说明一下层次遍历:借助一个队列,先将二叉树根结点入队,然后出队,访问出队结点,若它有左子树,则将左子树根结点入队;若它有右子树,则将右子树树根结点入队。然后出队,访问出队结点.......如此反复,直 ...
分类:
其他好文 时间:
2020-07-23 16:22:22
阅读次数:
66