栈 栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,我们就应该首选“栈”这种数据结构。 实际上,栈既可以用数组来实现,也可以用链表来实现。用数组实现的栈,我们叫作顺序栈,用链表实现的栈,我们叫作链式栈。 用数组实现 ...
分类:
其他好文 时间:
2020-05-02 09:43:55
阅读次数:
49
? 队列(Queue)是一个先进先出(FIFO)的数据结构,下面我们直接来看Java里的实现。Queue在Java里作为一个接口,在java.util包下继承自Collection,共有六个方法如下。 | 方法 | 用处 | 出错时 | | | | | | boolean add(E e); | 向 ...
分类:
其他好文 时间:
2020-04-30 19:22:28
阅读次数:
93
URL化 题目 URL化。 编写一种方法,将字符串中的空格全部替换为%20。 假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。 (注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。) 提示: 字符串长度在[0, 500000]范围内。 示例 来源:力扣(Lee ...
分类:
Web程序 时间:
2020-04-27 19:45:53
阅读次数:
62
2020-04-25 22:57:32 439. 线段树的构造 II 线段树是一棵二叉树,他的每个节点包含了两个额外的属性start和end用于表示该节点所代表的区间。start和end都是整数,并按照如下的方式赋值: 根节点的 start 和 end 由 build 方法所给出。 对于节点 A 的 ...
分类:
其他好文 时间:
2020-04-25 23:53:43
阅读次数:
116
一、物理结构和概念结构 学习堆必须明确,堆有两个结构,一个是真实存在的物理结构,一个是有助于理解的概念结构。 1. 堆一般由数组实现,但是我们平时在理解堆的时候,会把他构建成一个完全二叉树结构。堆分为大根堆和小根堆:大根堆,就是这颗树里的每一个结点都是以它为根结点的树中的最大值;小根堆则与之相反。 ...
分类:
编程语言 时间:
2020-04-23 19:35:27
阅读次数:
79
浅谈LinkedList LinkedList是一个链表结构类型的列表,底层通过链表结构来存储数据的链式存储,可以无限链接新元素(受限于硬盘存储容量),不存在ArrayList(底层使用数组实现)中的数组扩容问题,具有插入,删除元素快捷、方便的特点,但因为每个节点需要有上一个节点和下一个节点的引用, ...
分类:
其他好文 时间:
2020-04-19 15:02:10
阅读次数:
64
逆序枚举和顺序枚举差异主要在一维数组实现的时候出现 方程: dp[j]=max(dp[j],dp[j-w[i]]+v[i]); 测试样例: 3 5 3 5 2 6 4 10 逆序结果: 11 顺序结果: 12 12这个错误的数据是怎么来的? 利用check,打印每次枚举后的结果, 代码如下 1 #i ...
分类:
编程语言 时间:
2020-04-19 14:53:06
阅读次数:
106
Python实现队列 单链表实现队列 循环双端链表实现队列 数组实现队列 ...
分类:
编程语言 时间:
2020-04-19 14:50:21
阅读次数:
61
栈的用途比较广 如:子进程调用,递归调用,表达式转换,二叉树遍历,深度优先搜索 等等 实现思路: 1)top=-1时栈为空,top=maxsize-1栈满 C#代码实现: 1 using System; 2 3 namespace 数据结构 4 { 5 public class ArrayStack ...
分类:
编程语言 时间:
2020-04-16 09:18:27
阅读次数:
73
1.什么是队列 [1] 队列只允许在表的前端(front)进行删除操作,且在表的后端(rear)进行添加操作; [2] 队列是“先进先出”,进行插入操作的后端称为队尾rear,进行删除操作的前端称为队首front; [3] 队列的种类:顺序队列和循环队列。 [4] 队列同栈一样,即能利用数组实现(线 ...
分类:
其他好文 时间:
2020-04-13 22:25:28
阅读次数:
73