E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
LeetCode_栈与队列
栈与队列
(栈)
1.定义相同点:栈和队列都是线性表。不同点:栈是限定仅在表尾进行插入和删除操作的线性表。(先进后出)队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。(后进后出)栈:我们把允许插入和输出的那一称之为栈顶(top),另一端称为栈底(bottom)。不含任何元素的栈称为空栈。栈的插入工作称为进栈,也称压栈、入栈。栈的删除工作称为出栈,也称为弹栈。队列:我们把允许插入的一端称为队尾,允许删
是胡图图不是糊涂涂
·
2020-08-14 07:20
栈(Stack)和队列(Queue)
栈与队列
1、栈(先进后出)a.顺序栈b.链式栈c.基本操作(顺序存储)2、队列(先进先出)a.顺序存储b.链式存储c.基本操作(链式存储)d.循环队列e.双端队列1、栈(先进后出)定义:只允许在一端进行插入或者删除操作的线性表基本结构图如下
骑着皮皮虾的小狼
·
2020-08-14 07:20
数据结构
栈与队列
的基本概念、应用、LetCode真题
目录栈栈的基本概念栈是什么顺序栈链栈栈的案例符号匹配浏览器前进后退功能总结队列队列的基本概念队列是什么基本操作顺序队列的数据操作循环队列链式队列的数据操作应用约瑟夫环总结LetCode真题20.有效的括号739.每日温度239.滑动窗口最大值栈栈的基本概念栈是什么线性表增加和删除操作限制在一端进行,就被称为栈。那为什么要使用栈?其实,单纯从功能上讲,数组或者链表可以替代栈。然而问题是,数组或者链表
梦世
·
2020-08-14 07:27
数据结构的应用
数据结构—
栈与队列
的基本概念
1.栈和队列的定义和特点1.1栈定义:只能在表的一端(栈顶)进行插入和删除运算的线性表。逻辑结构:与线性表相同,仍为一对一关系。存储结构:用顺序栈或链栈存储均可,但以顺序栈更常见。运算规则:只能在栈顶运算,且访问结点时依照后进先出(LIFO)或先进后出(FILO)的原则。实现方式:关键是编写入栈和出栈函数,具体实现依顺序栈或链栈的不同而不同。基本操作有入栈、出栈、读栈顶元素值、建栈、判断栈满、栈空
小虾米_2018
·
2020-08-14 07:25
数据结构
LeetCode_
计算右侧小于当前元素的个数
题目说明给定一个整数数组nums,按要求返回一个新数组counts。数组counts有该性质:counts[i]的值是nums[i]右侧小于nums[i]的元素的数量。输入:[5,2,6,1]输出:[2,1,1,0]解释:5的右侧有2个更小的元素(2和1).2的右侧仅有1个更小的元素(1).6的右侧有1个更小的元素(1).1的右侧有0个更小的元素.链接:https://leetcode-cn.co
luncy_yuan
·
2020-08-14 07:23
LeetCode
栈与队列
的区别及自定义实现
第一部分的总结主要转载:https://blog.csdn.net/bbc955625132551/article/details/72773285一、栈(Stack)和队列(Queue)的特点栈(Stack)和队列(Queue)是两种基于数组实现、操作受限的线性表,即栈和队列都是数组的子集。线性表:线性表是一种线性结构,它是一个含有n≥0个结点的有限序列,同一个线性表中的元素数据类型相同并且满足
jinYwuM
·
2020-08-14 07:13
数据结构
数据结构(十一)— 串
串的定义上一章我们说了
栈与队列
这种基础的数据结构,这一章我们简单的来说说另一种数据结构:串,首先我们来了解下串是什么?串(string)是由零个或多个字符组成的有限序列,又名叫字符串。
dashifu11111
·
2020-08-14 06:34
堆
栈与队列
堆栈1.先进后出,后进先出2.只能在一端(栈顶,Top)进行插入(入栈,Push)和删除(出栈,Pop)堆栈的基本操作StackCreateStack(intMaxSize);//生成空堆栈,其最大长度为MaxSizeintIsFull(StackS,intMaxSize);//判断堆栈S是否已满viodPush(StackS,ElementTypeitem);//将元素item压入堆栈SintI
Xu_Haocan
·
2020-08-14 06:25
栈与队列
| 常见习题总结(下)
4.模拟计算器实现四则运算(1)中缀表达式转后缀表达式什么是中缀表达式呢?我们平时做数学题所列的标准四则运算表达式,例如:“9+(3-1)×3+10÷2”就是一个中缀表达式中缀表达式转后缀表达式的结果又是什么样子的呢?“931-3×+102÷+”栈的作用:进出运算符号转换规则:从左到右遍历中缀表达式的每一个数字和符号,若是数字,直接输出成为后缀表达式的一部分,若是运算符号,首先判断其与栈顶元素的优
BUZZ_Q
·
2020-08-14 06:21
栈
队列
Java创建一个
栈与队列
关于栈栈(Stack)是限定只能在一段进行插入和删除操作的线性表。进行插入和删除操作的一端称为“栈顶”(top),另一端称为“栈底”(bottom)。栈的插入操作称为“入栈”(push),栈的删除操作称为“出栈”(pop)。栈具有后进先出(LIFO),先进后出(FILO)的特性。JavaStack类栈是Vector的一个子类,它实现了一个标准的后进先出的栈。堆栈只定义了默认构造函数,用来创建一个空
erinapple
·
2020-08-14 06:09
JAVA
堆
栈与队列
堆
栈与队列
可以用数组实现,也可以用链表实现。下文统一用链表实现上述数据结构。堆栈服从先进后出原则,只对栈头进行删除和插入操作,即封锁了链表的一端,只对链表的另一端进行操作,就形成了逻辑上的堆栈结构。
江左喵郎
·
2020-08-14 06:38
golang_算法:
leetcode_
排序与搜索01-合并两个有序数组
packagemainimport("fmt")funcmerge(nums1[]int,mint,nums2[]int,nint){fmt.Println("nums1=",nums1)fmt.Println("nums2=",nums2)ifm==0{copy(nums1,nums2)}ifn==0{return}copy(nums1[m:],nums2)fori:=0;inums1[j+1]
Grayan
·
2020-08-14 04:23
algorithm
leetcode_
数组_674_最长连续递增序列
//1、用max来计算之前遍历中的最长的子列的长度//2、如何看得出这种分支:因为要判断和记录每次遍历的情况//3、这种问题其实是:遍历、判断、记录模型classSolution{public:intfindLengthOfLCIS(vector&nums){intcount=0;intmax=0;for(inti=0,intj=1;j
专一的黄先生
·
2020-08-13 21:22
leetcode
数据结构与算法
【
Leetcode_
总结】 476. 数字的补数 -python
Q:给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。你可以假定二进制数不包含前导零位。示例1:输入:5输出:2解释:5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例2:输入:1输出:0解释:1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。思路:数字的补数是按位取反,也就是异或操作,因此生成与
Maka_uir
·
2020-08-13 15:43
Leetcode
大三学生拿下美团和华为实习offer,面经分享
9:数据结构:
栈与队列
区别是啥?10:开发中有哪些应用到栈和队列了呢?(我说了JAVA中的优先队列)11:那OS
Java劝打师
·
2020-08-13 11:34
Java
使用两个队列实现一个栈,使用两个栈实现一个队列
一、
栈与队列
的特点(一)栈栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。不含任何元素的栈称为空栈,栈又称为后进先出的线性表。
梦奕
·
2020-08-12 15:56
c++
数据结构
小白也能看懂的数据结构:
栈与队列
文章目录栈一、顺序栈二、链栈队列一、顺序队列二、链队列栈逻辑结构:先进后出栈(stack)是一种只能在一端(栈顶,另一端叫栈底)进行插入或删除操作的线性表。栈的逻辑结构属于线性表,只不过在操作上加了一些约束。存储结构:一、顺序栈顺序栈的实现方法:intstack[maxSize];inttop=-1元素入栈:stack[++top]=1;stack[++top]=2;……元素出栈:x=stack[
若年封尘
·
2020-08-12 14:23
数据结构
数据结构
栈
队列
入栈出栈
入队出队
栈与队列
栈与队列
栈栈是限定仅在表尾进行插入和删除操作的线性表。栈的抽象数据类型ADTStack{Data元素具有相同的类型,相邻元素具有前驱后继关系。
Yang Mi
·
2020-08-12 14:41
6.
栈与队列
3.
栈与队列
:
栈与队列
是两种特殊的线性表,它们的逻辑结构与线性表的逻辑结构相同,但在运算操作方面较线性表有更多的限制,它们是重要的线性数据结构,通常被称为运算受限的线性表。
q386538588
·
2020-08-12 14:21
数据结构之
栈与队列
的面试题:用两个队列实现一个栈
首先要用队列实现栈,我们主要的问题是,应该让先入队列的元素后出去,这样就是栈的操作了,那该如何操作呢?我们这里的思路是,首先两个队列,起初在入栈的时候插入到任意一个空队列当中即可,接下来,如果入栈应该插入到一个有元素的队列当中去。在出栈的时候,应该把有元素的队列内的前n-1个元素全部入到另一个空队列内部,接着把剩下的最后一个元素出栈即可。//实现如下#include#include"seqqueu
ricardoleo
·
2020-08-12 14:13
数据结构
数据结构之
栈与队列
从
栈与队列
的逻辑结构上来说,它们也是线性结构,与线性表不同的是它们所支持的基本操作是受到限制的,它们是操作受限的线性表,是一种限定性的数据结构。
iteye_8208
·
2020-08-12 14:36
java
集合
数据结构之
栈与队列
(一)基本概念
而
栈与队列
是两种特殊的常用的线性表。1、栈栈是后进后出(LILO)的线性表、只能从栈顶插入或取出。
chen1678940
·
2020-08-12 14:54
数据结构之
栈与队列
一、栈的定义栈是这样一种数据结构,它只允许在有序的线性数据集合的一端进行加入数据和删除数据。也就是说,对于这种数据结构的操作只允许在同一个地方进行,这样栈就具有了它特有的特点,在其中的数据总是保持先进后出的特性。下面以图示展示:好了,我们已经知道对于栈这种数据结构,无论是添加元素还是删除元素,都是在栈顶进行的,下面我们定义出其上的APIpublicinterfaceStack{voidpush(E
Truism2
·
2020-08-12 14:43
数据结构
数据结构----Java中
栈与队列
相互实现
栈:先进后出;队列:先进先出,FIFO利用两个队列实现栈的功能//利用两个队列实现栈importjava.util.Queue;importjava.util.LinkedList;publicclassQueueToStack{Queuequeue1=newLinkedList();Queuequeue2=newLinkedList();//队列模拟进栈publicstaticvoidpush(
不贰过先生
·
2020-08-12 14:33
数据结构
算法-数据结构
Java中栈与队列相互实现
数据结构(十一)— 串
串的定义上一章我们说了
栈与队列
这种基础的数据结构,这一章我们简单的来说说另一种数据结构:串,首先我们来了解下串是什么?串(string)是由零个或多个字符组成的有限序列,又名叫字符串。
ZT_WOLF
·
2020-08-12 12:20
数据结构
java
基础
数据结构
串
串的存储
数据结构与算法全套精讲(python版) (三)
栈与队列
1.栈stack开口那端叫栈顶;既可用顺序表(连续存储),也可用链表表示(离散存储)。#栈classStack(object):#object表示继承def__init__(self):self.__list=[]defpush(self,item):#压栈returnself.__list.append(item)defpop(self):#弹栈returnself.__list.pop()de
是鲤鱼呀
·
2020-08-11 03:38
数据结构
python版
数据结构(C语言) 单链表基础 增删改查
数据结构这门课是每个程序员都必须要熟悉掌握的一门课程,更何况绩点还是得要的这门课讲的知识首先很多而且会用到c语言程序设计中较为复杂的东西,不及时再将实例亲自打一遍是不行的,此博客将总结数据结构中所讲的单链表最基本的增删改查的操作方法,以便于之后
栈与队列
的学习
月遠
·
2020-08-11 00:41
栈的基本操作(例题+代码)
数据结构实验之
栈与队列
八:栈的基本操作TimeLimit:1000msMemoryLimit:65536KiBSubmitStatisticDiscussProblemDescription堆栈是一种基本的数据结构
正在学习c
·
2020-08-10 20:01
成长
c
sdut
Leetcode_
回文链表(探索初级算法--python)
请判断一个链表是否为回文链表。示例1:输入:1->2输出:false示例2:输入:1->2->2->1输出:true#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,x):#self.val=x#self.next=NoneclassSolution:defisPalindrome(self,head:ListNode
记录一下呀
·
2020-08-10 19:25
leetcode
【
Leetcode_
总结】240. 搜索二维矩阵 II - python
Q:编写一个高效的算法来搜索mxn矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:现有矩阵matrix如下:[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]]链接:https://leetcode-cn.com/pro
Maka_uir
·
2020-08-10 18:51
Leetcode
[蓝桥杯-历届试题] 拉马车 (
栈与队列
)
问题描述小的时候,你玩过纸牌游戏吗?有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友。其规则简述如下:假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸牌序列如下:A方:[K,8,X,K,A,2,A,9,5,A]B方:[2,7,K,5,J,5,Q,6,K,4]其中的X表示“10”,我们忽略了纸牌的花色。从A方开始,A、B双方轮流出牌。当轮到某一方出牌时,他从自己的纸牌队列的头部
Skyed.blue
·
2020-08-10 14:03
蓝桥杯
算法
数据结构
数据结构实验之
栈与队列
四:括号匹配 SDUT-2134
数据结构实验之
栈与队列
四:括号匹配题目描述:给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的(),[],{}是否匹配。
PythonXQ
·
2020-08-10 14:16
刷题
Leetcode_
剑指Offer_面试题04. 二维数组中的查找
题目:在一个n*m的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:从数组右上角开始进行比较,当前遍历到的值与目标值相等时,返回True;当前遍历到的值比目标值小时往下跳一行,否则往左跳一列。代码:classSolution:deffindNumberIn2DArray(self,
夬_syx
·
2020-08-10 03:47
【万字总结】图解堆算法、链表、
栈与队列
(多图预警)
堆算法什么是堆堆(heap),是一类特殊的数据结构的统称。它通常被看作一棵树的数组对象。在队列中,调度程序反复提取队列中的第一个作业并运行,因为实际情况中某些时间较短的任务却可能需要等待很长时间才能开始执行,或者某些不短小、但很重要的作业,同样应当拥有优先权。而堆就是为了解决此类问题而设计的数据结构。二叉堆是一种特殊的堆,二叉堆是完全二叉树或者近似完全二叉树,二叉堆满足堆特性:父节点的键值总是保持
George_Fal
·
2020-08-10 02:44
力扣高频|算法面试题汇总(一):开始之前
力扣高频|算法面试题汇总(一):开始之前力扣高频|算法面试题汇总(二):字符串力扣高频|算法面试题汇总(三):数组力扣高频|算法面试题汇总(四):堆、
栈与队列
力扣高频|算法面试题汇总(五):链表力扣高频
NotFound1911
·
2020-08-09 23:31
力扣
Leetcode_
前k个高频元素
思路大概是将数组中所有元素的频率记下来,然后统一使用最小堆来管理,将根节点与下一个元素比较,将频率更的高元素插入最小堆,同时进行堆排序操作,以此进行管理在这里发现原来c++有优先队列priority_queue可以达到相同的效果,优先队列将权值最大的放在队列的出口处,这样就完成了类似的效果原算法:classSolution{public:intsift_down(vector>&v,intk){i
peterchilly
·
2020-08-09 22:28
c++
算法
数据结构之
栈与队列
问题:如何实现浏览器的前进后退,利用栈这种数据结构?1.按顺序浏览网页a,b,c2.问题1:浏览器的前进后退是一个经典的例子,当我们浏览了很多网页后点击后退,就会回到上一个网页,点前进又会回到后退前的网页3.问题2:若后退后到b点击d网页,为什么就回不到c网页呢什么是栈1.举个例子,比如说羽毛球筒,放羽毛球,一个一个往里放,取的时候取只能从最外面的开始取,也就是先放的最后才能拿,栈也是先进后出2.
小傻孩丶儿
·
2020-08-09 22:00
【
Leetcode_
总结】234. 回文链表 - python
Q:请判断一个链表是否为回文链表。示例1:输入:1->2输出:false示例2:输入:1->2->2->1输出:true链接:https://leetcode-cn.com/problems/palindrome-linked-list/description/思路:遍历链表,判断遍历结果是否是回文串代码:#Definitionforsingly-linkedlist.#classListNode
Maka_uir
·
2020-08-09 22:01
Leetcode
C实现队列数据结构
栈与队列
的最大差别在于栈是LIFO(后进先出),而队列是FIFO,即先进先出。一个完美的队列现实例子:售票亭排队队伍。
YB_Promise
·
2020-08-09 10:16
适合初学者的算法自学目录--另附我自己看过的一些网址
complexity_of_algorithms.html1.2神奇的兔子数列https://www.jianshu.com/p/08400854283c第二章-线性表2.1链表2.2链表实例第三章-
栈与队列
huarray
·
2020-08-09 02:20
算法
算法目录
初学者自学
栈与队列
的相互实现
本文主要讨论队列与栈的相互实现——(1)利用栈实现队列:用两个栈如何做?一个栈呢?(2)利用队列实现栈:用两个队列如何做?一个队列呢?一、利用栈实现队列利用栈实现队列的本质是实现队列的enqueue和dequeue算法。1.用两个栈实现队列我们现在有两个栈,一个直观的想法是将数据在两个栈之间移动,以便能够达到先进先出的目的。假设这两个栈为栈A和栈B,栈A用来接收enqueue的数据,栈B用来deq
Fei_Xia_
·
2020-08-08 22:49
C++
算法
【
Leetcode_
总结】 34. 在排序数组中查找元素的第一个和最后一个位置 -python
Q:给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(logn)级别。如果数组中不存在目标值,返回[-1,-1]。示例1:输入:nums=[5,7,7,8,8,10],target=8输出:[3,4]示例2:输入:nums=[5,7,7,8,8,10],target=6输出:[-1,-1]思路:首先所给数组是有
Maka_uir
·
2020-08-07 15:28
Leetcode
oj2088 数据结构实验之
栈与队列
十一:refresh的停车场(双向队列)
数据结构实验之
栈与队列
十一:refresh的停车场(双向队列)Descriptionrefresh最近发了一笔横财,开了一家停车场。由于土地有限,停车场内停车数量有限,但是要求进停车场的车辆过多。
猫猫敲给力
·
2020-08-05 19:08
ACM集训——训练计划111
栈与队列
(C++)
文章目录栈的结构体定义顺序栈的结构体定义链栈结点的结构体定义队列的结构体定义顺序队列的结构体定义链队的结构体定义链队结点的结构体定义链队的结构体定义顺序栈链栈栈的应用顺序栈的应用链栈的应用顺序队(循环队列)链队共享栈和双端队列#definemaxSize100栈的结构体定义顺序栈的结构体定义typedefstruct{intdata[maxSize];inttop;}SqStactk;链栈结点的结
greedy-hat
·
2020-08-05 19:15
#
2021版数据结构高分笔记
leetcode_
解码方法(动态规划)
1、题目描述包含A-Z的字母的消息通过以下规则编码:'A'->1'B'->2...'Z'->26给定一个包含数字的编码消息,请确定解码方法的总数。例如,给定消息为"12",它可以解码为"AB"(12)或"L"(12)。"12"的解码方法为2种。2、题目解析题目思路不难,重点在于判断条件,除了26这个边界,还有要考虑全面包含0的情况,包括10、101、100、01之类的情况,用dp[i]代表从0-i
乒乒乓乓棒棒冰
·
2020-08-05 19:38
C++
算法与数据结构
【
Leetcode_
总结】991. 坏了的计算器 - python
Q:在显示着数字的坏计算器上,我们可以执行以下两种操作:双倍(Double):将显示屏上的数字乘2;递减(Decrement):将显示屏上的数字减1。最初,计算器显示数字X。返回显示数字Y所需的最小操作数。示例1:输入:X=2,Y=3输出:2解释:先进行双倍运算,然后再进行递减运算{2->4->3}.链接:https://leetcode-cn.com/problems/broken-calcul
Maka_uir
·
2020-08-05 16:05
Leetcode
【
Leetcode_
总结】230. 二叉搜索树中第K小的元素 - python
Q:给定一个二叉搜索树,编写一个函数kthSmallest来查找其中第k个最小的元素。说明:你可以假设k总是有效的,1≤k≤二叉搜索树元素个数。示例1:输入:root=[3,1,4,null,2],k=13/\14\ 2输出:1示例2:输入:root=[5,3,6,2,4,null,null,1],k=35/\36/\24/1输出:3链接:https://leetcode-cn.com/probl
Maka_uir
·
2020-08-05 10:06
Leetcode
ACM信息学竞赛算法总结
基础知识位运算递推与递归前缀与差分二分排序倍增贪心尺取法数据结构
栈与队列
:单调栈单调队列双端队列Hash:字符串Hash与Hash表字符串处理:KMP算法,--Rabin-Karp算法—最小表示法Tire
正月看雪花
·
2020-08-05 01:23
算法
【数据结构与算法】
栈与队列
栈一、什么是栈?1.后进者先出,先进者后出,这就是典型的“栈”结构。2.从栈的操作特性来看,是一种“操作受限”的线性表,只允许在端插入和删除数据。二、为什么需要栈?1.栈是一种操作受限的数据结构,其操作特性用数组和链表均可实现。2.但,任何数据结构都是对特定应用场景的抽象,数组和链表虽然使用起来更加灵活,但却暴露了几乎所有的操作,难免会引发错误操作的风险。3.所以,当某个数据集合只涉及在某端插入和
CryptWinter
·
2020-08-05 01:24
算法
数据结构
堆栈
队列
java
C++数据结构之
栈与队列
前言先讲一个笑话,怎样判断一个人是否是程序员?答:问他push的反义词是什么。回答pull的是普通人,回答pop的才是程序员,push和pop就是栈和队列中要用到的函数。栈栈是一种线性存储结构,元素遵循“先进后出”,并且只能在栈顶进行插入和删除,附上代码演示栈的用法,超详细。#include#include//包含栈的头文件usingnamespacestd;intmain(){stacks;//
fakerth
·
2020-08-04 21:33
数据结构与算法
上一页
15
16
17
18
19
20
21
22
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他