SHAOXIAOJ正在加载中...

1645: 栈-初始化、入栈和打印2(顺序存储)

金币值:2 定数:9 时间限制:1.000 s 内存限制:128 M
正确:19 提交:24 正确率:79.17% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 数据结构-栈与队列

题目描述

初始化一个栈(假设栈顶指针和栈底指针相等时表示栈为空),调用入栈操作输入一些元素,然后再调用出栈操作逆序输出这些元素。

输入格式

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.base=new elemType[MAXSIZE];
	s.top=s.base;
	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.base==s.stacksize) {
		printf("stack is full!\n");
	} else {
		
	}
}

void pop(sqStack &s, elemType &e) {
	if(s.top==s.base) {
		printf("stack is empty!\n");
	} else {

	}
}

void output(sqStack s) {
	elemType x;
	while(s.top!=s.base) {

	}
}