描述

创建一个顺序栈(静态),栈大小为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 ;
}

TOJ 数据结构实验--静态顺序栈的更多相关文章

  1. TZOJ 数据结构实验--静态顺序栈

    描述 创建一个顺序栈(静态),栈大小为5.能够完成栈的初始化.入栈.出栈.获取栈顶元素.销毁栈等操作. 顺序栈类型定义如下: typedef struct {  int data[Max];    i ...

  2. 数据结构:C_顺序栈的实现

    数据结构顺序栈的实现(C语言版) 1.写在前面 栈是一种遵循元素先进(Push)后出(Pop)规则的线性表,它的实现可以用数组或者链表. ..... 2.代码分解 2.1对栈的结构定义: typede ...

  3. 数据结构——Java实现顺序栈

    一.分析 栈是限定仅在表的一端进行插入或删除操作的线性表,对于栈来说,操作端称为栈顶,另一端则称为栈底,栈的修改是按照后进先出的原则进行的,因此又称为后进先出的线性表. 顺序栈是指利用顺序存储结构实现 ...

  4. 数据结构实验3:C++实现顺序栈类与链栈类

      实验3 3.1 实验目的 熟练掌握栈的顺序存储结构和链式存储结构. 熟练掌握栈的有关算法设计,并在顺序栈和链栈上实现. 根据具体给定的需求,合理设计并实现相关结构和算法.3.2实验要求3.2.1 ...

  5. 数据结构实验1:C++实现静态顺序表类

    写了3个多小时,还是太慢了.太菜了! 图1 程序运行演示截图1 实验1 1.1 实验目的 熟练掌握线性表的顺序存储结构. 熟练掌握顺序表的有关算法设计. 根据具体问题的需要,设计出合理的表示数据的顺序 ...

  6. SDUT-1479_数据结构实验之栈与队列九:行编辑器

    数据结构实验之栈与队列九:行编辑器 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个简单的行编辑程序的功能是:接受用 ...

  7. SDUT-3334_数据结构实验之栈与队列七:出栈序列判定

    数据结构实验之栈与队列七:出栈序列判定 Time Limit: 30 ms Memory Limit: 1000 KiB Problem Description 给一个初始的入栈序列,其次序即为元素的 ...

  8. SDUT-3332&3333_数据结构实验之栈与队列五:下一较大值

    数据结构实验之栈与队列六:下一较大值 Time Limit: 150 ms Memory Limit: 8000 KiB Problem Description 对于包含n(1<=n<=1 ...

  9. 数据结构Java实现05----栈:顺序栈和链式堆栈

    一.堆栈的基本概念: 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...

随机推荐

  1. 深入分析Java Web中的编码问题

    编码问题一直困扰着我,每次遇到乱码或者编码问题,网上一查,问题解决了,但是实际的原理并没有搞懂,每次遇到,都是什么头疼. 决定彻彻底底的一次性解决编码问题. 1.为什么要编码 计算机的基本单元是字节, ...

  2. 《高级软件测试》11.14.安装和运行Jira

    今日任务完成情况如下: 小段:研究Jira在Linux的安装教程 小费:尝试在Ubuntu下安装Jira 小高:查阅了关于Jira软件的介绍和安装教程,下载准备明天安装,并学习使用 小王:注册Jira ...

  3. linux cenots7安装mysql

        1.下载mysql 下载的话先确认好版本. system:centos7 mysql:5.7 下面的版本自己选择,一般是86位的. 下载好的文件 2.上传到服务器 soft文件夹,终端也进入了 ...

  4. 【漏洞复现】PHPCMS wap模块 SQL注入(附EXP)

    漏洞影响版本:v9.5.8.v9.6.0 Step1: 访问:http://www.xxx.com/index.php?m=wap&a=index&siteid=1, 获取返回的coo ...

  5. 新概念英语(1-29)Come in, Amy.

    How must Amy clean the floor? A:Come in, Amy. Shut the door, please. This bedroom's very untidy. B:W ...

  6. mysql(2)—— 由笛卡尔积现象分析数据库表的连接

    首先,先简单解释一下笛卡尔积. 现在,我们有两个集合A和B. A = {0,1}     B = {2,3,4} 集合 A×B 和 B×A的结果集就可以分别表示为以下这种形式: A×B = {(0,2 ...

  7. python CSS

    CSS 一. css的四种引入方式   1.行内式  2.嵌入式  3. 链接式 将一个.css文件引入到HTML文件中 1 <link href="mystyle.css" ...

  8. 确保 PHP 应用程序的安全 -- 不能违反的四条安全规则

    规则 1:绝不要信任外部数据或输入 关于 Web 应用程序安全性,必须认识到的第一件事是不应该信任外部数据.外部数据(outside data) 包括不是由程序员在 PHP 代码中直接输入的任何数据. ...

  9. [LeetCode] Merge Two Binary Trees 合并二叉树

    Given two binary trees and imagine that when you put one of them to cover the other, some nodes of t ...

  10. MySQL · 引擎特性 · InnoDB 同步机制

    前言 现代操作系统以及硬件基本都支持并发程序,而在并发程序设计中,各个进程或者线程需要对公共变量的访问加以制约,此外,不同的进程或者线程需要协同工作以完成特征的任务,这就需要一套完善的同步机制,在Li ...