第二节 c++ 数据结构stack 的用法详解
发布日期:2024-04-19 13:29:51 浏览次数:585 分类:技术文章

本文共 1349 字,大约阅读时间需要 4 分钟。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


引言

本节我们一起来学习c++数据结构中的栈(stack),下面是我的学习笔记,供大家参考,如果觉得总结的不错的话,可以收藏起来方便今后复习。

本章概括

章节 内容
1.1 容器 vector
1.2 栈 stack
1.3 队列 queue
1.4 链表 list
1.5 set
1.6 map

1.2.1 stack

1.介绍

  • 栈是基本的数据结构之一,特点是“先进后出”。例如乘坐电梯时,先进电梯的最后出来;一盒泡腾片,最先放进盒子的药片位于最底层,最后被拿出来。

还可以定义多维数组:

vector< int > a[MAXN];

2.常见操作

功能 例子 说明
定义 stack< int > q 定义一个类型为int的q的栈
元素个数 int size = q.size(); 元素个数
是否为空 bool isEmpty = q.empty(); 判断是否为空
顶部插入 q.push(i); 在顶部插入i
删除顶部 a.pop(); 删除顶部元素
顶部元素 q.top(); 顶部元素

4.代码讲解

#include
#include
using namespace std;int main(){
stack
q; for(int i = 0;i < 7;i++) {
q.push(i);//将0到6压进去 } cout<
<

1.2.2例题

  • problem:

    伊格那丢喜欢倒过来写。给定伊格那丢写的一行文字,你应该颠倒所有的单词,然后输出它们。

  • input

    输入包含几个测试用例。输入的第一行是一个整数T,也就是测试用例的数量。下面是T个测试用例。
    每个测试用例都包含一个包含几个单词的行。一行最多有1000个字符。

    3

    olleh !dlrow
    m’I morf .udh
    I ekil .mca

  • output

    对于每个测试用例,您应该输出所处理的文本。

    hello world!

    I’m from hdu.
    I like acm.

#include
using namespace std;int main(){
int n; char ch; cin>>n; getchar(); while(n--) {
stack
a; while(1) {
ch = getchar();//一次读一个字符 if(ch == ' '||ch == '\n'||ch == EOF) {
while(!a.empty()) {
putchar(a.top());//输出栈顶 a.pop();//清除栈顶 } if(ch == '\n'||ch == EOF)break; cout<<" "; } else a.push(ch);//入栈 } cout<

下一节我们将对栈queue进行详解,请大家持续关注

转载地址:https://blog.csdn.net/qqqqq7_/article/details/125773611 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:第二节 c++的输入和输出
下一篇:第二节 3-8译码器设计实现与相关语法基础

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年05月03日 09时19分05秒