数据结构-队列和栈有什么区别

1:队列和栈是两种不同的数据结构。它们有以下区别:

(1)操作的名称不同。队列的插入称为入队,队列的删除称为出队。栈的插入称为进栈,栈的删除称为出栈。

(2)可操作的方式不同。队列是在队尾入队,队头出队,即两边都可操作。而栈的进栈和出栈都是在栈顶进行的,无法对栈底直接进行操作。

(3)操作的方法不同。队列是先进先出(FIFO),即队列的修改是依先进先出的原则进行的。新来的成员总是加入队尾(不能从中间插入),每次离开的成员总是队列头上(不允许中途离队)。而栈为后进先出(LIFO),即每次删除(出栈)的总是当前栈中最新的元素,即最后插入(进栈)的元素,而最先插入的被放在栈的底部,要到最后才能删除。

时间: 2024-10-14 13:44:23

数据结构-队列和栈有什么区别的相关文章

两种特殊的数据结构:队列和栈

一.队列 队列(Queue:本文要介绍的第一种数据结构):只能从线性表的一端添加(offer)元素,从另一端取出(poll)元素,并遵循FIFO(先进先出) 选择LinkedList来实现Queue接口,因为LinkedList在插入删除的操作方面效率较高 相关操作: boolean offer(E e):将元素追加到队列末尾 E poll():删除并返回队首元素 E peek():仅返回队首元素,不删除 实例编程: 1 package Java20170331; 2 3 import java

数据结构——队列,栈

队列 有时候,我们会遇到一些数字密码游戏,比如,给出一串数字: 4,6,8,3,5,2,2,6,0,解密规则是这样的,首先将第1个数删除,紧接着将第2个数字放到这串数的末尾,再将第3个数删除并将第4个数放到这串数的末尾,再将第5个数删除……如此往复,直到最后一个数也删除.按照刚才删除的顺序,将这些删除的数连在一起就是我们需要得到的目标数字.OK,这时候,拿出纸和笔,或者用一些小便签或者小卡片,将这9个数字分别写下来,开始模拟解密过程~ 其实解密的过程就像是将这些数进行排队,每次从最前面拿两个,第

线性数据结构---队列,栈 随笔

我们从四个简单但重要的概念开始研究数据结构.栈,队列,deques(双向队列), 列表是一类数据的容器,它们数据元素之间的顺序由添加或删除的顺序决定.一旦一个数据元素被添加,它相对于前后元素一直保持该位置不变.诸如此类的数据结构被称为线性数据结构. 线性数据结构有两端,有时被称为左右,某些情况被称为前后.你也可以称为顶部和底部,名字都不重要.将两个线性数据结构区分开的方法是添加和移除元素的方式,特别是添加和移除元素的位置.例如一些结构允许从一端添加元素,另一些允许从另一端移除元素. 栈 概念:栈

数据结构-队列和栈的使用

1:问题:一个顺序为1,2,3,4,5,6的栈,依次进入一个队列,然后进栈,顺序是什么? 答:首先一个顺序为1,2,3,4,5,6的栈,其意思是说进栈的顺序是1,2,3,4,5,6.按照栈的结构,1由于最先进栈,所以被放入栈底:6最后进栈,因此6位于栈顶. 然后进入一个队列.因为只能在栈顶进行出栈操作,也就是说,6最先出栈,1最后出栈.因此队列的入队顺序(也就是栈的出栈顺序)为6,5,4,3,2,1. 最后再进栈.队列是个FIFO(先进先出)的结构,因此出对顺序与入队顺序相同,即6,5,4,3,

第二章、最基本的数据结构——队列、栈、链表

还记得大学算法课,老师提过,程序=算法+数据结构,不一定非常正确,但表明了一个事实:算法和数据结构的重要性. 在做题的过程,用经典的算法+合适的数据结构,一道题基本也完成了80%,考虑下取值范围的限制以及输入输出条件,就差不多了. 原文地址:http://blog.51cto.com/10163636/2119288

数据结构与算法--栈、队列(队列)

Hello,everybody.我们又见面了.今天我们来学习一下队列这个数据结构,let's Go,开始我们的征程吧. 首先,举两个生活中的常见例子.相信大家,在用电脑工作娱乐时,都会碰到这样的现象.当我们点击程序或进行其他操作时,电脑处于死机状态.正当我们准备Reset时,它突然像打了鸡血似的,突然把刚才我们的操作,按顺序执行了一遍.之所以会出现这个现象,是因为操作系统的多个程序,需要通过一个管道输出,而按先后顺序排队造成的. 还有有个例子,在我们打客服热线时,有时会出现等待的现象.当其他客户

基础数据结构 链表、栈、队列

数据结构是程序设计中一个非常重要的部分,基本的数据结构包括链表.栈和队列,当然高级一点的还有树.图等,实际上链表.栈和队列都是线性表,只是在操作和表示方式上有所不同,线性表用顺序结构表示就是顺序表,用链结构表示就是链表,如果对线性表的操作加以限制,只能有在表尾进行插入和删除元素,这就变成栈了,如果只能允许元素从表尾插入,表头删除,这就变成队列了. 链表 /* * 数据结构 链表 * 链式结构 */ #include <iostream> using namespace std; enum St

算法系列(六)数据结构之表队列和栈

在http://blog.csdn.net/robertcpp/article/details/51559333一文中,我们讲了排序,这一章来介绍一下基本数据结构:表.队列.栈和它们的简单实现 一.表ADT 1.数组实现顺序表 通过对数组操作,来直接对表进行增删查改操作,这种线性表查找某个位置的元素花费的时间为O(1),但是插入删除元素花费的时间为O(n),如果对表的操作更多的是访问操作,那么选择这种实现更为合适. 下面是一个简单实现 package com.algorithm.list; im

4、蛤蟆的数据结构笔记之四栈和队列定义

4.蛤蟆的数据结构笔记之四栈和队列定义 本篇名言:"人生应该如蜡烛一样,从顶燃到底,一直都是光明的." 今天学习栈和队列了.从第二篇学习时候我们知道,其实也是线性表的一种. 我们先来看下定义. 欢迎转载,转载请标明出处: 1.  栈 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素:从一个栈删除元素又称