栈链

栈顶指针和单链表的头指针合二为一
链栈的初始化操作就是构造一个空栈,因此没有必要设头节点,所以直接将栈顶指针置空即可

链栈在入栈前不需要判断栈是否满,只需要为入栈元素动态分配一个结点空间

#include <iostream>
using namespace std;
typedef  int elemtype;
typedef  int status;
typedef struct stacknode
{
	elemtype data;
	stacknode *next;
}stacknode,*linkstack;
//初始化
status initstack(linkstack &s)
{
	s = NULL;
	return 0;
}
//链栈的入栈
status push(linkstack &s,elemtype e)
{
	linkstack p;
	p = new stacknode;
	p->data = e;
	p->next = s;
	s = p;//修改栈顶指针为p
	return 0;
}
//出栈
status pop(linkstack &s,elemtype &e)
{
	if (s == NULL)
		return -1;
	e = s->data;
	linkstack p;
	p = s;
	s = s->next;
	delete p;
	return 0;
}
//取栈顶元素
status gettop(linkstack s)
{
	if (s != NULL)
		return s->data;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
05-01 13:13
ecece:这么明目张胆虚报就业率啊
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
昨天 19:58
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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