再回首,数据结构——顺序栈上的常见操作

通过回顾大学时期的数据结构代码,作者分享了学习过程中的深刻体会,并提供了初学者参考。文章详细介绍了顺序栈的基本操作,包括初始化、空栈判断、长度计算、栈顶元素获取、元素压入和弹出等,为读者提供了实用的编程实践指导。

      最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会。

 

       希望这些能提供给初学者一些参考。


//顺序栈的类型
#define MaxSize N
typedef struct
{
	ElementType elem[MaxSize];
	int top;
}SeqStack;

//初始化堆栈 StackInit()
SeqStack StackInit (SeqStack *s)
{
	s->top = -1;
	return s;
}

//判断栈s是否为空 StackEmpty(s)
int StackEmpty (SeqStack s)
{
	return (-1 == s.top);
}

//求堆栈的长度 StackLength(s)
int StackLength (SeqStack s)
{
	return (++s.top);
}

//获取栈顶元素的值 GetTop(s)
int GetTop (SeqStack s)
{
	if (StackEmpty(s))
		return (nil);
	return (s.elem[s.top]);
}

//将元素e进栈 Push(s, e)
void Push (SeqStack *s, ElementType e)
{
	if (MaxSize-1 == s->top)
		printf ("Full");
	else
	{
		s->top++;
		s->elem[s->top] = e;
	}
}

//出栈 Pop(s)
ElementType pop (SeqStack *s)
{
	if (StackEmpty (*s))
		return (nil);
	e = s->elem[s->top];
	s->top--;
	return (e);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值