lc 剑指 Offer 09. 用两个栈实现队列 题目描述 输入输出描述 思路 1、使用传统的栈Stack即可完成 2、使用Deque数据结构堵住一端(堵住首) (addLast(),removeLast) 或者堵住尾(addFirst();removeFirst) 3、使用Deque数据结构堵住一 ...
分类:
其他好文 时间:
2020-07-20 13:02:17
阅读次数:
66
1.创建一个队列时,空队列中队首和队尾相同,但不是NULL,队首后面挂的元素才是NULL 2.打印队列时,对于链队列,不能把指针加一来找到下一个数据,因为链表地址不连续,需要复制一条链表,不断往后遍历来挨个打印链表的数据 3.求队伍的长度也是,不能首尾指针相减,因为地址不连续,所以同样需要复制一条链 ...
分类:
编程语言 时间:
2020-07-19 18:05:49
阅读次数:
71
一道队列广搜题 此题使用队列实现,现将初始状态加入到空的队列当中;然后每次取出对首,找出队首所能转移到的状态,再将其压入队列;如此反复,这样就能保证一个状态在被访问的时候一定是采用的最短路径。 广度优先搜索的一般形式 这里是使用队列实现广度优先搜索的一般形式: Q.push(初始状态);//将初始状 ...
分类:
其他好文 时间:
2020-07-06 10:32:54
阅读次数:
62
队列是一种基本的数据结构 基本概念 队列(Queue):具有一定操作约束的线性表 只能在一端插入,而在另一端删除 数据插入:入队列(AddQ) 数据删除:出队列(DeleteQ) 先进先出:First In First Out(FIFO) 抽象数据类型描述 类型名称:队列 数据对象集:一个有0个或多 ...
分类:
其他好文 时间:
2020-07-05 19:11:44
阅读次数:
64
数据结构与Python实现 分类和时空复杂度 分类: 时间和空间复杂度: Array 数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。 适用场景: 频繁查询,对存储空间要求不大,很少增加和删除的情况 优点: 按照索引查询元素速度 ...
分类:
其他好文 时间:
2020-07-05 13:49:41
阅读次数:
90
#一.栈 如图: ##①栈顶指针移动 ##②进栈代码: ##③出栈代码: ##④各种条件: ##⑤共享栈: #二.队列 如图: ##①入队出队操作示意图 ##②循环队列示意图 ##③队列各种条件 ##④出入队代码: ##⑤链式出入队 ##⑥双端队列 #三.压缩矩阵 ##①对称矩阵 ##②三角矩阵 # ...
分类:
其他好文 时间:
2020-07-04 17:19:40
阅读次数:
177
漂流在海上的帆,像极了鲨鱼的鳍 一、数据结构和算法的概述 1、数据(data)结构(structure) 是一门研究 组织数据方式 的学科。 2、程序 = 数据结构 + 算法 3、数据结构 是算法的基础 二、看几个实际编程中遇到的问题 1、关于单链表数据结构 public static void m ...
分类:
编程语言 时间:
2020-06-29 00:09:05
阅读次数:
97
一.前言 前文探究了非阻塞算法的实现ConcurrentLinkedQueue安全队列,也说明了阻塞算法实现的两种方式,使用一把锁(出队和入队同一把锁ArrayBlockingQueue)和两把锁(出队和入队各一把锁LinkedBlockingQueue)来实现,今天来探究下ArrayBlockin ...
分类:
编程语言 时间:
2020-06-25 12:10:12
阅读次数:
95
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、解释定义1.数据结构:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。再简单描述一下:数据结构就是描述对象间逻辑关系的学科。如果还是不太清楚下面会举例说明的。2.数据存储结构:简单的讲就是数据在计算机中的存储方式。常用的数据存储方式有两种:顺序存储,非顺序存储。顺序存储就是把数据存储在一块联系的存储介质(硬盘或
分类:
编程语言 时间:
2020-06-25 10:09:22
阅读次数:
94
设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或0; int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0; void Push(St ...
分类:
其他好文 时间:
2020-06-24 19:45:42
阅读次数:
56