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_栈与队列
如何使用JavaScript实现
栈与队列
前言栈和队列是web开发中最常用的两种数据结构。绝大多数用户,甚至包括web开发人员,都不知道这个惊人的事实。如果你是一个程序员,那么请听我讲两个启发性的例子:使用堆栈来组织数据,来实现文本编辑器的“撤消”操作;使用队列处理数据,实现web浏览器的事件循环处理事件(单击click、悬停hoover等)。等等,先想象一下我们作为用户和程序员,每天使用栈和队列的次数,这太惊人了吧!由于它们在设计上有普
前端先锋
·
2019-06-24 10:02
逻辑结构与物理结构
数据结构层次表数据结构逻辑结构线性结构(线性表)一般线性表线性表特殊线性表
栈与队列
字符串线性表的推广数组
Jinandawang
·
2019-06-22 10:46
数据结构零碎
Python---栈、队列和模块
栈与队列
栈;特点:先进后出mystack=[]mystack.append(1)#入栈mystack.pop()#出栈队列:特点:先进先出importcollectionsqueue=collections.deque
lonely2018
·
2019-06-17 09:34
农夫过河 (BFS)(队列)
2、问题的解决方案:可以用
栈与队列
、深度优先搜索算法及广度优先搜索算法相应的原理去解决问题。
华盛顿砍倒樱桃树
·
2019-06-14 19:00
js堆,
栈与队列
栈的定义栈是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO,LastInFirstOut)的原理运作。(百科全书)栈的常用操作栈中有两个基本的操作推入:从栈的顶端推入一个数据,依次往下推弹出:讲栈顶端的数据移除栈的基本提点就是先进后出,后进先出除了头尾的节点,每
永不言退
·
2019-06-11 21:00
向着更快更高 ——查找
学了线性表,操作过
栈与队列
,略过串、数组和广义表,建过树,搜过图,现在到了查找——对于大数据的查找优化。这一节,是以往知识的总结提高。一、首先是最简单的查找——顺序查找要求:顺序存储结构。
一游此处
·
2019-06-02 23:00
栈与队列
最近一直在看数据结构与算法,下面是对有线性结构的
栈与队列
的总结:栈相关的内容定义:栈是限定仅在表尾进行插入和删除操作的线性表。
Swen_9826
·
2019-05-08 21:32
Python实现的栈、队列、文件目录遍历操作示例
分享给大家供大家参考,具体如下:一、
栈与队列
1、栈stack特点:先进先出[可以抽象成竹筒中的豆子,先进去的后出来]后来者居上mystack=[]#压栈[向栈中存数据]mystack.append(1)
微信1257309054
·
2019-05-06 11:59
python
栈与队列
python
栈与队列
栈的实现classStack(object):"""栈"""def__init__(self):self.
程序使我快乐
·
2019-05-05 13:57
python数据结构与算法
数据结构与算法面试考点总结—程序员面试金典
内容主要包括:数组与字符串;链表;
栈与队列
;树与图;位操作;智力题;数学与概率;面向对象设计;递归与动态规划;扩展性与存储型限制;排序与查找;测试;C++重要知识点;Java重要知识点;数据库;线程与锁
Shao Kaiyang
·
2019-05-01 15:56
面试思考
常见的数据结构和算法小结
复杂度分析时间复杂度空间复杂度1.线性表1.1数组1.2链表1.2.1单链表1.2.2循环链表1.2.3双向链表1.2.4双向循环链表1.2.5跳表(SkipList)1.2.6小结1.3数组和链表的区别2.
栈与队列
小羊子说
·
2019-04-28 15:25
数据结构和算法
数据结构与算法
【
Leetcode_
总结】1018. 可被 5 整除的二进制前缀 - python
给定由若干0和1组成的数组A。我们定义N_i:从A[0]到A[i]的第i个子数组被解释为一个二进制数(从最高有效位到最低有效位)。返回布尔值列表answer,只有当N_i可以被5整除时,答案answer[i]为true,否则为false。示例1:输入:[0,1,1]输出:[true,false,false]解释:输入数字为0,01,011;也就是十进制中的0,1,3。只有第一个数可以被5整除,因此
Maka_uir
·
2019-04-02 16:49
Leetcode
第三章:
栈与队列
,学习小结
(1)先说说这两个星期的收获学了栈和队列的相关内容,但是对栈比较熟,队列还需要多熟悉一下,学了发现和前面的顺序表的结构还是很像的。(2)上次的目标:全部没有达到,对时间的安排不合理,作业堆在一个星期完成,大大降低效率,希望下个星期不要再这样了,要留多点时间研究透题目和自己代码的错因。(3)这周的作业编程题:题目:括号匹配给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编
Y000
·
2019-03-31 23:00
数据结构第三章总结
在第三章
栈与队列
学习当中,我们先学习到
栈与队列
的定义和特点,了解到栈是后进先出的线性表,而队列是先进先出的线性表。
thousand007
·
2019-03-31 22:00
『嗨威说』数据结构 - 第三章学习内容小结
本文内容:本章内容小结完成作业或实践时解决困难的经验分享参考资料、说明推荐理由及列出相关链接(或书目名称,具体页码)目前学习过程中存在的困难,待解决或待改进的问题接下来的目标一、本章内容小结:(
栈与队列
嗨威er
·
2019-03-31 19:00
《数据结构》第3章-
栈与队列
的学习总结
我之前有接触过栈和队列,当时就觉得很好奇,那是以怎样的存储结构存储数据的呢?拨开重重迷雾,终于学到基础知识了。学习《栈和队列》有两个星期了,有了前面两个章节的思维基础,我觉得栈和队列学习起来还是很好理解的,通过一些实际应用例子,让我有了更进一步的理解。现在我梳理一下知识,下面总结这一章我所学习到的东西。一、栈(后进先出:LIFO)1、顺序栈这是顺序栈的存储结构:typedefstruct{int*
Charzueus
·
2019-03-31 12:00
第三章小结
这次做
栈与队列
的题目有很多收获。首先是在栈这个方面,PTA上的题目是符号的匹配问题。第一个问题,是在遇到右符号时,如何比较是否有左符号与之匹配。
有只泉仔
·
2019-03-31 11:00
《剑指offer--
栈与队列
》21、栈的压入、弹出序列 ;5、用两个栈实现队列 ;20 、 包含min函数的栈(python、C++)
21、栈的压入、弹出序列输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路:使用一个辅助栈,遍历压入顺序压入辅助栈中,然后判断辅助栈顶元素是
perfect_young
·
2019-03-27 12:51
剑指offer编程
2018leetcode算法面试题汇总部分解答
文章目录开始之前只出现一次的数字求众数搜索二维矩阵2合并两个有序数组鸡蛋掉落字符串验证回文串有效的字母异位词字符串中的第一个唯一字符反转字符串数组乘积最大子序列旋转数组存在重复元素移动零两个数组的交集2递增的三元子序列除自身以外数组的乘积堆、
栈与队列
数组中的第
迷迭香迷魂香
·
2019-03-22 18:43
算法
leetcode
Java
Python数据结构:堆
栈与队列
堆栈在堆栈这种数据结构中,数据的存取会服“先进后出”原则。生活中最常见的例子就是打开抽屉,假如有一排抽屉我们需要一一打开检查,我们会从下往上打开抽屉,再从上往下关闭——“先进后出”,先打开的抽屉最后再关闭。再比如和人下棋,发现自己下错了,需要悔棋,执行的也是堆栈操作。堆栈有两种常见的实现方式:列表和链表。用列表实现堆栈top指定堆栈最上层元素。每当压入数据时,top+=1每当弹出数据时,top-=
ppsppy
·
2019-03-16 19:50
数据结构
阿里巴巴-飞猪 电话面试
(无序)1、数组与链表的区别2、
栈与队列
的区别。适用场合。3、乐观锁、悲观锁,死锁的条件、原因。4、堆排序和快速排序的原理,时间复杂度、空间复杂度和适用场合。5、java的内存模型。
矢澤 年
·
2019-03-13 20:36
面试
数据结构基本操作总结(C语言版)---链表、
栈与队列
第一章链表单链表无头节点01.函数声明linkedList.h02.数值检查check_list.cpp03.显示show.cpp04.插入操作insert.cpp05.删除操作delete.cpp06.输入数值input.cpp07.释放内存free.cpp08.节点计数itm_cunt.cpp09.冒泡排序sort.cpp单链表有头结点声明linked_list.h函数定义linked_lis
hhaowang
·
2019-03-12 18:37
数据结构与算法
数据结构实验之
栈与队列
七:出栈序列判定
ProblemDescription给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序列。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个出栈序列,但4,3,5,1,2就不可能是该序列的出栈序列。假设压入栈的所有数字均不相等。Inpu
那个村的王富贵
·
2019-03-11 17:42
记忆类
细节题
数据结构
行编辑器
数据结构实验之
栈与队列
九:行编辑器TimeLimit:1000msMemoryLimit:65536KiBSubmitStatisticDiscussProblemDescription一个简单的行编辑程序的功能是
董建的博客
·
2019-03-10 18:55
数据结构(树之前的部分)
offer66
有序:二分串变长:先定长二叉树:三种遍历,记录路径,深搜时要善于利用返回值(一般不让另外开数组维护)
栈与队列
:根据所求开辅助栈数组寻找而不消耗额外空间:把值取反,或者加上最大值令超限(即用1变-1,或26
_Jim_
·
2019-03-08 22:24
剑指OFFER66题
括号匹配
数据结构实验之
栈与队列
四:括号匹配TimeLimit:1000msMemoryLimit:65536KiBSubmitStatisticDiscussProblemDescription给你一串字符,不超过
董建的博客
·
2019-03-02 17:54
数据结构(树之前的部分)
算法与数据结构(三):栈
栈与队列
一样也是一种线性的数据结构,与队列不同的是栈是一种先进后出的结构,有点类似于现实中的弹夹,最后压进去的子弹总是最先被打出来,在计算机中栈用到的地方就是用作函数传参与函数中局部变量的保存,也就是我们经常说的函数栈
aluluka
·
2019-03-02 00:00
算法与数据结构
算法与数据结构
一般算术表达式转换成后缀式
数据结构实验之
栈与队列
二:一般算术表达式转换成后缀式对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。Input输入一个算术表达式,以‘#’字符作为结束标志。
董建的博客
·
2019-02-25 22:53
数据结构(树之前的部分)
数据结构与算法
绪论数据结构的基本概念算法和算法评价线性表线性表的定义和基本操作顺序表的定义顺序表上基本操作的实现单链表的定义单链表上基本操作的实现特殊链表顺序表和链表的比较
栈与队列
栈的基本概念栈的两种存储结构队列的基本概念队列的两种存储结构双端队列
栈与队列
的应用数组数组的定义和存储结构矩阵的压缩存储树与二叉树树的基本概念二叉树的定义二叉树的存储结构二叉树的遍历线索二叉树树的存储概念树
湫兮
·
2019-02-18 19:00
【
Leetcode_
总结】509. 斐波那契数 - python
Q:斐波那契数,通常用F(n)表示,形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0, F(1) =1F(N)=F(N-1)+F(N-2),其中N>1.链接:https://leetcode-cn.com/problems/fibonacci-number/description/思路:递推求解代码:classSolution(objec
Maka_uir
·
2019-02-08 20:51
Leetcode
数组
【
Leetcode_
总结】643. 子数组最大平均数 I - python
Q:给定n个整数,找出平均数最大且长度为k的连续子数组,并输出该最大平均数。示例1:输入:[1,12,-5,-6,50,3],k=4输出:12.75解释:最大平均数(12-5-6+50)/4=51/4=12.75链接:https://leetcode-cn.com/problems/maximum-average-subarray-i/description/思路:直接暴力的话会超时因此对于求和进
Maka_uir
·
2019-02-04 21:33
Leetcode
数组
【
Leetcode_
总结】724. 寻找数组的中心索引 - python
Q:给定一个整数类型的数组nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回-1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例1:输入:nums=[1,7,3,6,5,6]输出:3解释:索引3(nums[3]=6)的左侧数之和(1+7+3=11),
Maka_uir
·
2019-02-04 19:54
Leetcode
数组
【
Leetcode_
总结】129. 求根到叶子节点数字之和 - python
Q:给定一个二叉树,它的每个结点都存放一个0-9的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径1->2->3代表数字123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。示例1:输入:[1,2,3]1/\23输出:25解释:从根到叶子节点路径链接:https://leetcode-cn.com/problems/sum-root-to-leaf
Maka_uir
·
2019-02-02 11:14
Leetcode
数据结构--
栈与队列
一.栈一.顺序栈的实现A.栈的定义1.栈是一种特殊的线性表2.栈仅能在线性表的一端进行操作a.栈顶:允许操作的一端b.栈底:不允许操作的一端B.栈的特性后进先出(图示)C.栈的操作1.创建栈2.销毁栈3.清空栈4.进栈5.出栈6.获取栈顶元素7.获取栈的大小D.栈的实现templateclassStack:publicObject{public:virtualvoidpush(constT&e)=
淡淡_小孩
·
2019-01-28 09:06
数据结构
C++
数据结构
数据结构——
栈与队列
-基本知识点(第四章)
第四章
栈与队列
目录第四章
栈与队列
4.2栈的定义4.2.1栈的定义4.2.2进栈出栈变化形式4.3栈的抽象数据类型4.4栈的顺序存储结构及实现4.4.1栈的顺序存储结构4.4.2栈的顺序存储结构——进栈操作
Change_Improve
·
2019-01-25 17:47
数据结构
栈
队列
数据结构
栈
队列
【
Leetcode_
总结】 978. 最长湍流子数组 - python
Q:当A的子数组A[i],A[i+1],...,A[j]满足下列条件时,我们称其为湍流子数组:若iA[k+1],且当k为偶数时,A[k]A[k+1],且当k为奇数时,A[k]A[2]A[4]A[i]andA[i-1]>A[i-2])or(A[i-1]A[i]andA[i-1]>A[i-2])or(A[i-1]
Maka_uir
·
2019-01-24 10:09
Leetcode
数组
动态规划
LeetCode_
打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例1:输入:[1,2,3,1]输出:4解释:偷窃1号房屋(金额=1),然后偷窃3号房屋(金额=3)。 偷窃到的最高金
NPC一H
·
2019-01-23 17:57
leetcode
LeetCode_
打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例1:输入:[1,2,3,1]输出:4解释:偷窃1号房屋(金额=1),然后偷窃3号房屋(金额=3)。 偷窃到的最高金
NPC一H
·
2019-01-23 17:57
leetcode
LeetCode_
最大子序和
给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入:[-2,1,-3,4,-1,2,1,-5,4],输出:6解释: 连续子数组 [4,-1,2,1]的和最大,为 6。进阶:如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的分治法求解。publicintmaxSubArray(int[]nums){if(nums.length==0){
NPC一H
·
2019-01-23 15:59
leetcode
LeetCode_
最大子序和
给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入:[-2,1,-3,4,-1,2,1,-5,4],输出:6解释: 连续子数组 [4,-1,2,1]的和最大,为 6。进阶:如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的分治法求解。publicintmaxSubArray(int[]nums){if(nums.length==0){
NPC一H
·
2019-01-23 15:59
leetcode
LeetCode_
爬楼梯
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例1:输入:2输出:2解释:有两种方法可以爬到楼顶。1.1阶+1阶2.2阶示例2:输入:3输出:3解释:有三种方法可以爬到楼顶。1.1阶+1阶+1阶2.1阶+2阶3.2阶+1阶因为只有两个方法,要么爬1个台阶,要么爬2个台阶。所以一开始想到递归来遍历。结果超时,代码如
NPC一H
·
2019-01-23 11:44
leetcode
LeetCode_
爬楼梯
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例1:输入:2输出:2解释:有两种方法可以爬到楼顶。1.1阶+1阶2.2阶示例2:输入:3输出:3解释:有三种方法可以爬到楼顶。1.1阶+1阶+1阶2.1阶+2阶3.2阶+1阶因为只有两个方法,要么爬1个台阶,要么爬2个台阶。所以一开始想到递归来遍历。结果超时,代码如
NPC一H
·
2019-01-23 11:44
leetcode
LeetCode_
缺失数字
给定一个包含0,1,2,...,n中n个数的序列,找出0..n中没有出现在序列中的那个数。示例1:输入:[3,0,1]输出:2示例2:输入:[9,6,4,2,3,5,7,0,1]输出:8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?publicintmissingNumber(int[]nums){//排序Arrays.sort(nums);inttarget=nums.le
NPC一H
·
2019-01-23 09:44
leetcode
LeetCode_
缺失数字
给定一个包含0,1,2,...,n中n个数的序列,找出0..n中没有出现在序列中的那个数。示例1:输入:[3,0,1]输出:2示例2:输入:[9,6,4,2,3,5,7,0,1]输出:8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?publicintmissingNumber(int[]nums){//排序Arrays.sort(nums);inttarget=nums.le
NPC一H
·
2019-01-23 09:44
leetcode
LeetCode_
删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表:1->2->3->4->5,和n=2.当删除了倒数第二个节点后,链表变为1->2->3->5.说明:给定的n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*Li
NPC一H
·
2019-01-23 09:33
leetcode
LeetCode_
反转链表
反转一个单链表。示例:输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(intx){val=x;}*}*/classSolu
NPC一H
·
2019-01-23 09:08
leetcode
LeetCode_
反转链表
反转一个单链表。示例:输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(intx){val=x;}*}*/classSolu
NPC一H
·
2019-01-23 09:08
leetcode
LeetCode_
合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4,1->3->4输出:1->1->2->3->4->4/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(intx){val=x;}*}*/classSolu
NPC一H
·
2019-01-23 09:55
leetcode
LeetCode_
合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4,1->3->4输出:1->1->2->3->4->4/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(intx){val=x;}*}*/classSolu
NPC一H
·
2019-01-23 09:55
leetcode
LeetCode_
删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表--head=[4,5,1,9],它可以表示为:示例1:输入:head=[4,5,1,9],node=5输出:[4,1,9]解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为4->1->9.示例2:输入:head=[4,5,1,9],node=1输出:[4,5,9]解
NPC一H
·
2019-01-23 09:41
leetcode
上一页
22
23
24
25
26
27
28
29
下一页
按字母分类:
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
其他