目录 前言 概念 链表的设计 完整代码 List接口 抽象父类设计 链表—LinkedList 虚拟头结点 ...
目录 前言 栈 概念 栈的设计 编码实现 小结 队列 概念 队列的设计 编码实现 双端队列 概念 设计 编码 循环队列 循环队列 循环双端队列 声明 前言 栈 概念 什么是栈 栈 :是一种特殊的线性表,只能在一端进行操作 入栈:往栈中添加元素的操作,一般叫做push 出栈:从栈中移除元素的操作,一般叫做pop,出栈 弹出栈顶元素 注意:这里说的 栈 与内存中的 栈空间 是两个不同的概念 栈的结构 ...
2020-09-13 21:18 0 579 推荐指数:
目录 前言 概念 链表的设计 完整代码 List接口 抽象父类设计 链表—LinkedList 虚拟头结点 ...
目录 数组基础回顾 自定义动态数组 动态数组的设计 抽象父类接口设计 抽象父类设计 动态数组之DynamicArray 补充 ...
,这样我们就可以随时对自己有疑惑的地方通过亲手调试来加强理解). 本文使用最新的Ubuntu 16.0 ...
1.双端队列介绍 在介绍双端队列之前,我们需要先介绍队列的概念。和栈相对应,在许多算法设计中,需要一种"先进先出(First Input First Output)"的数据结构,因而一种被称为"队列(Queue)"的数据结构被抽象了出来(因为现实中的队列,就是先进先出的)。 队列是一种 ...
栈:LIFO(后进先出) 队列:FIFO(先进先出) 栈的顺序存储结构实现: 栈的链式存储结构实现: 基于LinkedList实现的栈结构: 队列的顺序存储结构实现 循环队列的顺序存储结构实现 队列 ...
栈是先入后出,队列是先入先出。根据这个思想,可以用一个栈作为入队,另一个栈作为出队。只要把第一个栈的栈顶的元素压入第二个栈就好了,出队的时候输出第二个栈的栈顶,如果第二个栈的空了就需要不断操作从第一个栈的栈顶压入第二个栈,但是如果第一个栈也空了,那就说明所有元素都输出来 ...
栈:LIFO(后进先出) 队列:FIFO(先进先出) 栈的顺序存储结构实现: 栈的链式存储结构实现: 基于LinkedList实现的栈结构: 队列的顺序存储结构实现 ...
更新日志(2018年8月18日):这篇博客的队列部分犯了个低级错误:入队和出队在同在队列尾端进行。正确的实现方式见基于双向链表实现无锁队列的正确姿势(修正之前博客中的错误) 目录 2. 基于CAS算法构建无锁的并发栈 2.1 数组实现 2.2 ...