简单的栈和队列

 1 /*
 2 入门之栈(Stack)和队列(Queue)
 3 在C++中STL中预置了<stack>和<queue>
 4 简单介绍栈和队列的思想和使用方法
 5 栈:先入后出(LIFO),可以理解为将球放进一个一段封闭的管子,只能从入口区出,先进的球只能最后出来
 6 队列:先入先出(FIFO),可以理解为将球放进不封闭的管子,球从另一端出来,先进的球先出
 7 常见应用:栈可以用于深搜(DFS),队列可以用于宽搜(BFS)
 8 只有看看例子就可以很好的理解栈和队列了,简单的先介绍这些
 9 */
10 #include<iostream>
11 #include<stack>
12 #include<queue>
13 using namespace std;
14 stack<int>a;
15 queue<int>b;
16 int main()
17 {
18     int c[] = {1,2,3};
19     for(int i=0; i<3; ++i)
20     {
21         a.push(c[i]);//入栈
22         cout << a.top() << endl;
23     }
24     for(int i=0; i<3; ++i)
25     {
26         cout << a.top() << endl;
27         a.pop();//出栈
28     }
29     cout << endl;
30     for(int i=0; i<3; ++i)
31     {
32         b.push(c[i]);//入队列
33         cout << b.front() << endl;
34     }
35     for(int i=0; i<3; ++i)
36     {
37         cout << b.front() << endl;
38         b.pop();//出队列
39     }
40     return 0;
41 }
时间: 2024-08-08 00:06:31

简单的栈和队列的相关文章

自己设置的纸牌游戏(简单数组栈和队列的设计)

星期天小白与小婷约在一起玩桌游,他们正在玩一个非常古怪的扑克游戏--"小猫钓鱼".游戏的规则是这样的:将一副扑克牌平均分成俩份,每人拿一份.小白先拿出手中的第一张扑克牌放在桌上,然后小婷也拿出手中的第一张扑克牌,并放在小白刚打出的扑克牌上面,就像这样俩人交替出牌.出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将俩张相同的牌以及中间所夹着的牌全部取走,并依次放到自己手中牌的末尾.当任意一个人的牌全部出完时,游戏结束,对手获胜! 现在,我为了方便测试只涉及一组数据,因为数据如果不对的

【数据结构】3. 栈和队列

目录 3.1 栈 3.1.1 栈的基本概念 (1)栈的定义 (2)栈的基本操作 3.1.2 栈的顺序存储结构 (1)顺序栈的实现 (2)栈的基本运算 (3)共享栈 3.1.3 栈的链式存储结构 3.2 队列 3.2.1 队列的基本概念 (1)队列的定义 (2)队列常见的基本操作 3.2.2 队列的顺序存储结构 (1)队列的順序存储 (2)循环队列 (3)循环队列的操作 3.2.3 队列的链式存储结构 (1)队列的链式存储 (2)链式队列的基本操作 3.2.4 双端队列 3.3 栈和队列的应用 3

简单数据结构(四)栈和队列的简单应用

     编程判断一个字符串是否是回文.回文是指一个字符序列以中间字符为基准两边字符完全相同,如字符序列" ACBDEDBCA"是回文.      算法思想:判断一个字符序列是否是回文,就是把第一个字符与最后一个字符相比较,第二个字符与倒数第二个字符比较,依次类推,第 i 个字符与第 n-i个字符比较.如果每次比较都相等,则为回文,如果某次比较不相等,就不是回文.因此,可以把字符序列分别入队列和栈,然后逐个出队列和出栈并比较出队列的字符和出栈的字符是否相等,若全部相等则该字符序列就是回

简单方法快速记忆数组栈和队列函数

在js中,对数组的操作是比较常见的,有时候,我们需要模拟栈和队列的特性才能实现需求,今天来给大家用通俗易懂.简洁明了的几行文字,来告诉大家栈和队列的几个函数,如何快速记住. 首先,概念还是要知道的: 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素:从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻

【leetcode 简单】 第六十六题 用栈实现队列

使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部. pop() -- 从队列首部移除元素. peek() -- 返回队列首部的元素. empty() -- 返回队列是否为空. 示例: MyQueue queue = new MyQueue(); queue.push(1); queue.push(2); queue.peek(); // 返回 1 queue.pop(); // 返回 1 queue.empty(); // 返回 false 说明: 你只能使用标准的栈操

数据结构之栈和队列

数据结构学习继续向前推进,之前对线性表进行了学习,现在我们进入栈和队列的学习.同样我们先学习一些基本概念以及堆栈的ADT. 栈和队列是两种中重要的线性结构.从数据结构角度看,栈和队列也是线性表,只不过是受限的线性表.因此可以称为限定性数据结构.但从数据类型来看,他们是和线性表大不相同的两类重要的抽象数据类型. 栈:(stack)是限定仅在表尾进行相应插入和删除操作的线性表.因此,对栈来说,表尾有其特殊含义,称为栈顶,表头称为栈底,不含元素的空表称为空栈.栈一个重要特性就是后进先出.OK,我们来看

(hdu step 8.1.1)ACboy needs your help again!(STL中栈和队列的基本使用)

题目: ACboy needs your help again! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 73 Accepted Submission(s): 57   Problem Description ACboy was kidnapped!! he miss his mother very much and is very

栈和队列常见题型(java版)

直接上干货..... 栈和队列常见题型: 实现栈和实现队列. 两个栈实现一个队列. 设计栈,使得pop,push和min时间复杂度为O(1). 滑动窗口的最大值. 栈的进出序列. 实现栈和实现队列 主要包括:栈,队列,循环队列. package com.sywyg; /** * 实现栈 * 数组应该是Object类型的 * 注意top的设置影响出栈和获取栈顶元素. * size也可以用top代替 */ class MyStack<E>{ // 栈元素个数 private int size; /

栈、队列、堆

新年伊始 再破一谜团 区别参考: 队列只能在队头做删除操作,在队尾做插入操作.而栈只能在栈顶做插入和删除操作栈就是一个桶,后放进去的先拿出来,它下面本来有的东西要等它出来之后才能出来堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间.即动态分配内存,对其访问和对一般内存的访问没有区别. {堆是指程序运行是申请的动态内存,而栈只是指一种使用堆的方法(即先进后出).} 栈是先进后出的,但是于堆而言却没有这个特性,两者都是存放临时数据的地方. 对于堆,我们可以随心所欲的进行增加变量和删除变量