数据结构-顺序栈的操作实践

数据结构-顺序栈的操作实践

采用顺序存储实现栈的初始化、入栈、出栈操作

#include<iostream>
using namespace std;
#define MAXSIZE 50
// 定义顺序栈的结构
typedef struct {
   
	int data[MAXSIZE];
	int top;
}SqStack;

/** * 初始化顺序栈 * @param S 顺序栈S */
void InitStack(SqStack& S) {
   
	S.top = -1;  // 初始化栈顶指针
}

/** * 顺序栈入栈 * @param S 顺序栈S * @param x 入栈元素x * @return 成功返回真,否则返回假 */
bool Push(SqStack& S, int x) {
   
	if (S.top == MAXSIZE - 1)  // 栈满
		return false;
	S.data[++S.top] = x;  // 指针先加1,再入栈
	return true;
}

/** * 顺序栈出栈 * @param S 顺序栈S * @param x 通过x将栈顶元素返回 * @return 成功返回真,否则返回假 */
bool Pop(SqStack& S, int& x) {
   
	if (S.top == -1)  // 栈空
		return false;
	x = S.data[S.top--];  // 先出栈,指针再减1
	return true;
}

int main() {
   
	int n;
	cin >> n;

	SqStack S;
	InitStack(S);

	int x;
	cout << "入栈:";
	for (int i = 0; i < n; i++)
	{
   
		cin >> x;
		Push(S, x);
	}

	cout << "出栈:";
	for (int j = 0; j < n; j++)
	{
   
		Pop(S, x);
		cout << x << " ";
	}
	cout << endl;

	return 0;
}

创作不易,喜欢的话加个关注点个赞,谢谢谢谢谢谢!

全部评论

相关推荐

01-07 07:54
已编辑
门头沟学院 前端工程师
点赞 评论 收藏
分享
野猪不是猪🐗:把你的学校加黑,加粗,斜体,下划线,描边,内阴影,内发光,投影,外发光,再上渐变色,居中,放大到最大字号,再把简历里其它内容删了,就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务