STL学习记录:栈与队列

首先是栈的基本操作,也就这些了

#include <bits/stdc++.h>
using namespace std;
int main ()
{
    stack<int> test;//声明方式:stack <数据类型> 名称
    test.push(2);    //向栈中压入2
    test.top()=1;    //也可以直接改变栈顶的值
    test.pop();        //弹出栈顶部的值
    if (test.empty())//如果栈空,返回true
        cout<<"空栈";
    cout<<test.size();//返回栈中元素数目
    return 0;
}

原文地址:https://www.cnblogs.com/Salty-Fish/p/12310903.html

时间: 2024-11-12 07:52:49

STL学习记录:栈与队列的相关文章

算法学习记录-栈的应用--表达式运算

前面做了栈的基本操作 总感觉需要做一个实际的例子来检验一下. 这里我将用栈来做一个简单的四则运算. 目标比较简单: 做一个带小括号(“()”)的四则运算,如果要加入到中括号(“[]”)或者大括号(“{}”),依次类推. 求一个表达式: 用下面这个算是做例子,程序最后应该可以算出任何带小括号的运算. 3+(32-6)*9+5*3-(3*(65-15)/5)+12; 方法一:后缀法. 1.了解中缀和后缀表示法 中缀表示法:刚才的那个算是就是中缀表示法,我们通常看到的数学符号就是中缀表示法,即数字在计

stl学习记录

Effective STL 中文版学习记录 条款4 判断容器是否为空 使用empty而不是size().size()操作在实现上不是一个时间常数操作条款5 尽量使用区间成员函数代替它们的单元素兄弟.STL实现中,区间范围显示比单个循环操作更优化 条款7:当使用new得指针的容器时,记得在销毁容器前delete那些指针vc2008下 运行代码 可以看到 该程序内存不断增加// 1111111.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h" #incl

数据结构学习总结 栈和队列

一,顺序栈的基本操作 同顺序表和链表一样,栈也是用来存储逻辑关系为 "一对一" 数据的线性存储结构,如图 1 所示.                                                               图 1 栈存储结构示意图 从图 1 我们看到,栈存储结构与之前所学的线性存储结构有所差异,这缘于栈对数据 "存" 和 "取" 的过程有特殊的要求: 1,栈只能从表的一端存取数据,另一端是封闭的,如图 1 所示

数据结构学习--Java栈和队列

栈:先进后出 队列:先进先出 都是数组存放,但是删除的时候不是删除了数组中的数据,而是使用增加游标标识的方式实现删除,“游标标识”加加或者减减完成删除操作,查看的时候,也不是直接查看栈和队列的数组元素,而是使用游标的方式向外查看. 栈的实现 package com.example.deer; public class MyStack { private long[] arr; private int top; /** * 默认构造函数 */ public MyStack(){ arr = new

c++ STL 学习记录 草稿。

非常丑陋的尝试实现stl.慢慢修改吧. 1)简单实现 vector和list. 2)思索如何开始编写算法. 1,所有容器继承一个抽象容器.那么算法就可以使用抽象基类的next方法来遍历元素. 容器间耦合太高,放弃. 2,所有容器的元素T继承一个基类,算法使用基类的next方法来遍历元素.应该是可以的.做到一半,实现多态时,必须太多指针样子,好像跟stl的使用相差太远.看书发现stl是用模板模拟多态.或者说是模板的正宗,优雅的多态形式. 3,使用模板的更优雅的多态思想来实现容器的迭代器. 3)后面

STL学习记录:链表

直接百度链表的话,其实和真正用起来的STL链表差的挺远的(毕竟有些情况能用就行~),还是自己写一下记录一下STL里链表具体用法吧 #include <bits/stdc++.h> using namespace std; int main () { //1. 定义 //list<数据类型> 链表名称 list<int> test; list<int>::iterator iter=test.begin(); //2. 增删改查 //增加 test.push_

stl学习记录(2)

#include <iostream> #include <utility> #include <tuple> #include <complex> #include <string> using namespace std; // 代码 改编自 C++标准库——自学教程与参考手册 英文第二版 //==================================== // tuple io template <int IDX,int M

《数据结构》第3章-栈与队列的学习总结

我之前有接触过栈和队列,当时就觉得很好奇,那是以怎样的存储结构存储数据的呢?拨开重重迷雾,终于学到基础知识了. 学习<栈和队列>有两个星期了,有了前面两个章节的思维基础,我觉得栈和队列学习起来还是很好理解的,通过一些实际应用例子,让我有了更进一步的理解.现在我梳理一下知识,下面总结这一章我所学习到的东西. 一.栈(后进先出:LIFO) 1.顺序栈 这是顺序栈的存储结构: typedef struct { int *base;//栈底指针 int *top; //栈顶指针 int size; /

数据结构实验三《栈和队列》

<数据结构>实验三 栈和队列 一.实验目的 巩固栈和队列数据结构,学会运用栈和队列. 1.回顾栈和队列的逻辑结构和受限操作特点,栈和队列的物理存储结构和常见操作. 2.学习运用栈和队列的知识来解决实际问题. 3.进一步巩固程序调试方法. 4.进一步巩固模板程序设计. 二.实验时间 准备时间为第5周到第6周,具体集中实验时间为6周第2次课.2个学时. 三.实验内容 1.自己选择顺序或链式存储结构,定义一个空栈类,并定义入栈.出栈.取栈元素基本操作.然后在主程序中对给定的N个数据进行验证,输出各个