1645: 栈-初始化、入栈和打印2(顺序存储)
金币值:2
定数:9
时间限制:1.000 s
内存限制:128 M
正确:19
提交:24
正确率:79.17% 命题人:
题目描述
初始化一个栈(假设栈顶指针和栈底指针相等时表示栈为空),调用入栈操作输入一些元素,然后再调用出栈操作逆序输出这些元素。
输入格式
第1行输入一个整数n,表示栈中数据元素的个数
第2行输入n个整数,表示栈中存储的具体数据
输出格式
按要求输出n个整数
输入样例 复制
4
1 2 3 4
输出样例 复制
4 3 2 1
提示
#include <stdio.h> #define MAXSIZE 100 typedef int elemType; typedef struct { elemType *base; elemType *top; int stacksize; } sqStack; void init(sqStack &s); void push(sqStack &s, elemType x); void input(sqStack &s); void pop(sqStack &s, elemType &x); void output(sqStack s); int main(void) { sqStack s; init(s); input(s); output(s); return 0; } void init(sqStack &s) { s.ba se=new elemType[MAXSIZE]; s.top=s.ba se; s.stacksize=MAXSIZE; } void input(sqStack &s) { int n; elemType x; scanf("%d",&n); for(int i=1; i<=n; i++) { scanf("%d",&x); push(s,x); } } /*仅提供以下代码*/ void push(sqStack &s, elemType x) { if(s.top-s.ba se==s.stacksize) { printf("stack is full!\n"); } else { } } void pop(sqStack &s, elemType &e) { if(s.top==s.ba se) { printf("stack is empty!\n"); } else { } } void output(sqStack s) { elemType x; while(s.top!=s.ba se) { } }