堆栈和队列

// 堆栈.cpp : 定义控制台应用程序的入口点。
//一种数据结构
//堆栈中的元素遵循后进先出的原则(LIFO)后入栈的元素先出栈
//队列
//队列中的元素遵循先进先出的原则,先进队列的元素先出队列

//stack  堆栈 适配器容器  是由其他容器实现的(可以指定由其它容器实现)
/*
push()压入堆栈
pop()出栈
top()栈顶元素
size()大小(个数)
*/
//queue  队列 适配器容器  是由其他容器实现的(可以指定由其它容器实现)
/*
push()加入队列
front()取队头元素
back()取队尾元素
pop()出队列
size()大小(个数)
*/
#include "stdafx.h"
#include<stack>
#include<queue>
#include<vector>
#include<iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
 stack<int> stak;//stack<int,vector<int>> stak;
 stak.push(10);//入栈元素
 stak.push(20);//入栈元素
 int topValue = stak.top();//栈顶元素
 stak.pop();//出栈元素
 topValue = stak.top();
 cout << "***********************************" << endl;

queue<int> que;
 que.push(12);
 que.push(13);
 que.push(14);
 int backvalue = que.back();//取队尾元素
 int frontvalue = que.front();//取对头元素
 cout << "队尾:"<<backvalue <<"队头:"<< frontvalue << endl;
 que.pop();//出队列一个元素
 backvalue = que.back();//取队尾元素
 frontvalue = que.front();//取对头元素
 cout << "队尾:" << backvalue << "队头:" << frontvalue << endl;
 int size = que.size();
 cout <<"元素大小:"<< size << endl;
 return 0;
}

时间: 2024-11-10 07:48:56

堆栈和队列的相关文章

数据存储的常用结构 堆栈、队列、数组、链表

数据存储的常用结构有:堆栈.队列.数组.链表.我们分别来了解一下: 堆栈,采用该结构的集合,对元素的存取有如下的特点: 先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素).例如,子弹压进弹夹,先压进去的子弹在下面,后压进去的子弹在上面,当开枪时,先弹出上面的子弹,然后才能弹出下面的子弹. 栈的入口.出口的都是栈的顶端位置 压栈:就是存元素.即,把元素存储到栈的顶端位置,栈中已有元素依次向栈底方向移动一个位置. 弹栈:就是取元素.即,把栈的顶端位置元素取出,栈中已有元素依次

3-08. 堆栈模拟队列(25)(ZJU_PAT 模拟)

题目链接:http://pat.zju.edu.cn/contests/ds/3-08 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: (1) int IsFull(Stack S):判断堆栈S是否已满,返回1或0: (2) int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0: (3) void Push(Stack S, ElementType item ):将元素item压入堆栈S: (4)

用LinkedList模拟一个堆栈或者队列数据结构 总结: LinkedList知识点

/** 用LinkedList模拟一个堆栈或者队列数据结构. 创建一个堆栈和队列数据结构对象,该对象中使用LinkedList来完成的. 知识点总结: 1.LinkedList特点:链表式数据结构. 重复有序,查询速度慢,增删速度快.不同步的. 2.LinkedList除了实现List接口增删改查的功能外,有一些特有的方法,能够实现在List(列表)的开头和结尾 插入,删除,获取等特有功能.这就是为什么LinkedList能够模拟一个堆栈,或者队列,双端队列的数据结构了. 涉及知识点: 1.什么

使用LinkedList模拟一个堆栈或者队列数据结构

使用LinkedList模拟一个堆栈或者队列数据结构. 堆栈:先进后出  如同一个杯子. 队列:先进先出  如同一个水管. import java.util.LinkedList; public class DuiLie { private LinkedList link; public DuiLie() { link = new LinkedList(); } public void myAdd(Object obj) { link.addFirst(obj); } public Object

java集合 collection-list-LinkedList 模拟一个堆栈或者队列数据结构。

/* 使用LinkedList模拟一个堆栈或者队列数据结构. 堆栈:先进后出 如同一个杯子. 队列:先进先出 First in First out FIFO 如同一个水管. */ import java.util.*; class DuiLie { private LinkedList link; DuiLie() { link = new LinkedList(); } public void myAdd(Object obj) { link.addFirst(obj); } public O

巧用javascript数组实现数据结构-堆栈与队列

简单的利用javascript的数组实现数据结构中的堆栈和队列.Stack.js源码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

PHP 堆栈和队列

<?php/*堆栈和队列都是特殊的线性表,差别是线性表的插入删除操作不受限制,而堆栈只能在栈顶删除和插入,队列只能在队尾插入,对头删除.堆栈可以用来完成数据元素序列的特定转换,队列可以用做数据元素序列的缓冲存储. 堆栈:堆栈是一种特殊的线性表,堆栈的 数据元素以及数据元素之间的逻辑关系和线性表完全相同,只是线性表允许在任意位置插入和删除数据元素,而堆栈指是在固定的一端进行数据的插入和删除操作. 堆栈允许进行数据元素插入和删除的一段称为栈顶,另一端成为栈尾.栈顶的当前位置是动态因为随时会插入数据和

Java LinkedList特有方法程序小解 &amp;&amp; 使用LinkedList 模拟一个堆栈或者队列数据结构。

package Collection; import java.util.LinkedList; /* LinkedList:特有的方法 addFirst()/addLast(); getFirst()/getLast(); removeFirst()/removeLast(); 若链表为空,抛出 没有这个元素异常/NoSuchElementException 但是 JDK1.6 版本以后出现了替代方法: offerFirst()/offerLast(); peekFirst()/peekLas

Java使用LinkedList模拟一个堆栈或者队列数据结构

用Java模拟一个堆栈或者队列数据结构. 首先得明白堆栈和队列的数据结构: 堆栈:先进后出 队列:先进先出 LinkedList中刚好有addFirst()和addLast()方法. [java] view plaincopyprint? public class Stack { public static void main(String[] args) { StackTools tools = new StackTools(); tools.add("a"); tools.add(

7-22 堆栈模拟队列

7-22 堆栈模拟队列(25 分) 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或0: int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0: void Push(Stack S, ElementType item ):将元素item压入堆栈S: ElementType Pop(Stack S ):删除并返回S的栈顶元素. 实现队