TZOJ 数据结构实验--静态顺序栈
描述
创建一个顺序栈(静态),栈大小为5。能够完成栈的初始化、入栈、出栈、获取栈顶元素、销毁栈等操作。
顺序栈类型定义如下:
typedef struct
{ int data[Max];
int top;
}SqStack;
部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。
int main()
{
SqStack s;
char ss[10];
int x, sta;
InitStack(&s);
while(scanf("%s", ss)!=EOF)
{
if(strcmp(ss, "push")==0)
{
scanf("%d", &x);
sta=Push(&s, x);
if(sta==0)
printf("FULL\n");
}
else if(strcmp(ss, "top")==0)
{
sta= GetTop(s, &x);
if(sta==0)
printf("EMPTY\n");
else
printf("%d\n", x);
}
else
{
sta = Pop(&s, &x);
if(sta==0)
printf("EMPTY\n");
else
printf("%d\n", x);
}
}
return 0;
}
输入
输入数据由以下几种命令组成:
(1)push x:将x压入栈
(2)pop:出栈
(3)top:获取栈顶元素
每个命令占一行,以EOF结束。
输出
当执行push操作时元素入栈,若栈满,输出FULL。
当执行pop时输出出栈的元素,当栈为空时,需要输出EMPTY。
当执行top时输出栈顶元素。
样例输入
push
1
push
2
push
3
push
4
push
5
push
6
pop
top
pop
pop
pop
pop
pop
样例输出
FULL
5
4
4
3
2
1
EMPTY
#include<string.h>
#define Max 5
#include <stdio.h>
typedef struct
{ int data[Max];
int top;
}SqStack;
int StackEmpty(SqStack s)
{//判断栈空
if(s.top==-)
return ;
else return ;
}
void InitStack(SqStack *s)
{//初始化栈
s->top=-;//空栈
}
int Push(SqStack *s,int x)
{//进栈
if(s->top==Max-)//栈满
return ;
else {
s->top++;
s->data[s->top]=x;
return ;
}
}
int Pop(SqStack *s,int *x)
{//删除栈顶元素
if(StackEmpty(*s))
return ;
else{
*x=s->data[s->top];
s->top--;
return *x;
}
}
int GetTop(SqStack s,int *x)
{//获取栈顶元素
if(StackEmpty(s))
{
return ;
}
else{
*x=s.data[s.top];
return *x;
}
}
int main()
{
SqStack s;
char ss[];
int x, sta;
InitStack(&s);
while(scanf("%s", ss)!=EOF)
{
if(strcmp(ss, "push")==)
{
scanf("%d", &x);
sta=Push(&s, x);
if(sta==)
printf("FULL\n");
}
else if(strcmp(ss, "top")==)
{
sta= GetTop(s, &x);
if(sta==)
printf("EMPTY\n");
else
printf("%d\n", x);
}
else
{
sta = Pop(&s, &x);
if(sta==)
printf("EMPTY\n");
else
printf("%d\n", x);
}
}
return ;
}
TZOJ 数据结构实验--静态顺序栈的更多相关文章
- TOJ 数据结构实验--静态顺序栈
描述 创建一个顺序栈(静态),栈大小为5.能够完成栈的初始化.入栈.出栈.获取栈顶元素.销毁栈等操作. 顺序栈类型定义如下: typedef struct { int data[Max]; i ...
- 数据结构:C_顺序栈的实现
数据结构顺序栈的实现(C语言版) 1.写在前面 栈是一种遵循元素先进(Push)后出(Pop)规则的线性表,它的实现可以用数组或者链表. ..... 2.代码分解 2.1对栈的结构定义: typede ...
- 数据结构——Java实现顺序栈
一.分析 栈是限定仅在表的一端进行插入或删除操作的线性表,对于栈来说,操作端称为栈顶,另一端则称为栈底,栈的修改是按照后进先出的原则进行的,因此又称为后进先出的线性表. 顺序栈是指利用顺序存储结构实现 ...
- TZOJ 数据结构实验--循环队列
描述 创建一个循环队列,队列元素个数为4.能够实现队列的初始化.入队列.出队列.求队列长度等操作. 循环队列数据类型定义如下: typedef struct{ int data[Max]; in ...
- TZOJ 数据结构实验:单链表元素插入
描述 实现函数CreateHeader用于创建空链表,实现Insert函数并调用它完成带头节点链表的创建. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. void PrintLinkL ...
- TZOJ 数据结构实验:创建单链表
描述 实现一个函数CreateLinkList,能够完成不带头节点链表的创建. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. void PrintLinkList(Node *head ...
- TZOJ数据结构实验:左叶子之和
int sumOfLeftLeaves(struct TreeNode* root) { if (root == NULL) { ; }//递归结束条件 if (root->left & ...
- 数据结构实验3:C++实现顺序栈类与链栈类
实验3 3.1 实验目的 熟练掌握栈的顺序存储结构和链式存储结构. 熟练掌握栈的有关算法设计,并在顺序栈和链栈上实现. 根据具体给定的需求,合理设计并实现相关结构和算法.3.2实验要求3.2.1 ...
- 数据结构实验1:C++实现静态顺序表类
写了3个多小时,还是太慢了.太菜了! 图1 程序运行演示截图1 实验1 1.1 实验目的 熟练掌握线性表的顺序存储结构. 熟练掌握顺序表的有关算法设计. 根据具体问题的需要,设计出合理的表示数据的顺序 ...
随机推荐
- Struts2-Tiles 2.5.2 升级指南和通配符拓展
最近工程从Struts2.3.18升级Struts2.5.2导致相关联的插件都需要升级到相同版本,其中tiles的变化最大. 1.web.xml上 listener org.apache.struts ...
- Python内置函数示例
abs() 返回数字绝对值 >>> abs(-100) 100 >>> abs(10) 10 >>> all() 判断给定的可迭代参数 itera ...
- Oracle操作时间-----摘抄而来
1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval ’7’ MINUTE from dual 当前时间减去7小时的时间 sele ...
- Word与Excel中,如何输入✔标志
为了表达值的对错,或者相关任务是否完成,我们需要在word及excel中输入[√]和[x] Word与Excel中如何在方框“口”中打勾[√]和[x],在Word中打钩的方法有3种:第一种,在插入特殊 ...
- iOS私有api检测工具使用
背景:这两天提审了一款新的APP,由于项目中使用了老版本的TZImagePicker中访问了私有API,导致提审失败. 预审经验分享: https://baijiahao.baidu.com/s?id ...
- ios审核 "prefs:root="被拒
https://blog.csdn.net/xnickname666/article/details/83068516 使用TZImagePicker https://github.com/banc ...
- 4、Servlet中的Cookie 用于存储 web 页面的用户信息。
Servlet Cookie 处理 Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息.Java Servlet 显然支持 HTTP Cookie. 识别返回用户包括三个步骤: 服务 ...
- CPU上下文切换以及相关指标的理解
前言 上下文切换这个词一直不理解,看了无数遍就忘了无数遍,知道看到<操作系统导论>这本书,终于有了略微的理解.这也证明了我的方向是没错的,一直认为做运维还是得理解底层的知识,不理解很多 ...
- Crontab定时备份网站脚本及mysql数据库
1)shell脚本 #!/bin/bash #你要修改的地方从这里开始 MYSQL_USER="root" #mysql用户名 MYSQL_PASS="123456&qu ...
- 重磅!阿里P8费心整理Netty实战+指南+项目白皮书PDF,总计1.08G
前言 Netty是一款用于快速开发高性能的网络应用程序的Java框架.它封装了网络编程的复杂性,使网络编程和Web技术的最新进展能够被比以往更广泛的开发人员接触到. Netty不只是一个接口和类的集合 ...