数据结构顺序栈(C语言版)

主要按照了数严蔚敏教授编写的数据结构里面的算法思想进行编写的
GITHUB地址为https://github.com/fz861062923/Data-Structure/tree/master/Squential%20Stack上面有主程序

顺序栈的存储结构

typedef struct
{
	SElemType *base;
	SElemType *top;
	int stacksize;
 }sqStack;

初始化顺序栈

Status InitStack(sqStack &S)
{
	S.base=new SElemType[MAXSIZE];
	if(!S.base)
		return ERROR;
	//栈顶指针初始为base表示为栈空
	S.top=S.base;
	S.stacksize=MAXSIZE;
	return OK; 
 } 

入栈

Status Push(sqStack &S,SElemType e)
{
	if(S.top-S.base==MAXSIZE)
		return ERROR;
	*S.top++=e;
	return OK;
 } 
  • *S.top++=e;等价于*S.top=s;S.top++;

出栈

Status Pop(sqStack &S,SElemType &e)
{
	if(S.top==S.base)
		return ERROR;
	e=*--S.top;
	return OK;
 } 
  • 其中e=*--S.top;等价于--S.top;e=*S.top

取出栈顶元素

Status GetTop(sqStack S)
{
	if(S.top!=S.base)
		return OK;
}
发布了44 篇原创文章 · 获赞 82 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/weixin_41503009/article/details/86669286