前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R7-2 栈的实现及基本操作

R7-2 栈的实现及基本操作

作者头像
苏泽
发布2024-03-01 12:26:19
1070
发布2024-03-01 12:26:19
举报

分数 15

作者 朱允刚

单位 吉林大学

给定一个初始为空的栈和一系列压栈、弹栈操作,请编写程序输出每次弹栈的元素。栈的元素值均为整数。

输入格式:

输入第1行为1个正整数n,表示操作个数;接下来n行,每行表示一个操作,格式为1 d或0。1 d表示将整数d压栈,0表示弹栈。n不超过20000。

输出格式:

按顺序输出每次弹栈的元素,每个元素一行。若某弹栈操作不合法(如在栈空时弹栈),则对该操作输出invalid。

输入样例:

7

1 1

1 2

0

0

0

1 3

0

输出样例:

2

1

invalid

3

#include <stdio.h> #define MAX 20000

//元素elem进栈 int push(int* a,int top,int elem){     a[++top]=elem;     return top; } //数据元素出栈 int pop(int * a,int top){     if (top==-1) {         printf("invalid\n");         return -1;     }     printf("%d\n",a[top]);//弹栈元素     top--;     return top; } int main() {     int n;     scanf("%d",&n);     int i,b,t;//t是操作,b是数      int top=-1;     int a[MAX];//数组储存      while(n--){         scanf("%d",&t);         if(t==1){             scanf("%d",&b);             top=push(a,top,b);         }else if(t==0){             top=pop(a,top);         }     }     return 0; }

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档