数据结构-链栈操作实践

数据结构-链栈操作实践

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

#include<iostream>
using namespace std;
// 定义链栈的结构
typedef struct LinkNode {
   
	int data;
	struct LinkNode* next;
}LinkNode, *LinkStack;

/** * 初始化链栈 * @param LS 链栈LS */
void InitStack(LinkStack& LS) {
   
	LS = (LinkStack)malloc(sizeof(LinkNode));
	if (LS)
		LS->next = NULL;
}

/** * 链栈的入栈操作 * @param LS 链栈LS * @param x 入栈元素x */
void Push(LinkStack& LS, int x) {
   
	LinkNode* p = LS;
	p->data = x;  // 先入栈
	LinkNode* s = (LinkNode*)malloc(sizeof(LinkNode));
	if (s) {
   
		s->next = p;  // 再加1
		LS = s;
	}
}

/** * 链栈的出栈操作 * @param LS 链栈LS * @param x 通过x返回出栈元素 */
void Pop(LinkStack& LS, int& x) {
   
	LinkNode* p = LS->next;
	LS->next = p->next;  // 先减1
	x = p->data;  // 再出栈
	free(p);
}

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

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

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

	return 0;
}

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

全部评论

相关推荐

网客牛马:兄弟,你是敲代码敲入魔 了开个小号自娱自乐吗
点赞 评论 收藏
分享
09-01 11:31
门头沟学院 Java
buul:七牛云的吧,感觉想法是好的,但是大家没那么多时间弄他这个啊。。。不知道的还以为他是顶尖大厂呢还搞比赛抢hc,只能说应试者的痛苦考察方是无法理解的,他们只会想一出是一出
点赞 评论 收藏
分享
存一下准备挨个投一下
小小:银行秋招真题,欢迎大家来刷:牛客 -> 题库 -> 国央企笔试真题 。https://www.nowcoder.com/exam/company?questionJobId=195&subTabName=written_page
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务