顺序栈的基本操作实现算法

  • 内容
  • 相关

栈作为一种特殊的线性表,主要有两种基本的存储结构:顺序存储结构和链式存储结构。而顺序栈是用顺序存储结构实现的栈。

/*顺序栈存储结构的类型定义(c中的一维数组)*/
#define Stack_Size 50   /*设栈中元素个数为50*/
typedef struct
{
	ElementType elem[Stack_Size];  /*用来存放栈中元素的一维数组*/
	int top;  /*用来存放栈顶元素的下标,top为-1表示空栈*/
}SeqStack;

/*初始化顺序栈*/
void InitStack(SeqStack *S)
{	/*构造一个空栈*/
	S->top=-1;
}

/*顺序栈进栈*/
int Push(SeqStack *S,ElementType x)
{	/*将x置入S栈新栈顶*/
	if(S->top==Stack_Size-1)
		return (FALSE);  /*栈已满*/
	S->top++;  /*修改栈顶指针*/
	S->elem[S->top]=x;  /*x进栈*/
	return (TRUE);
}

/*顺序栈出栈*/
int Pop(SeqStack *S,ElementType *x)
{	/*将S栈顶元素弹出,放到x所指的存储空间中带出*/
	if(S->top==-1)  /*栈为空*/
		return (FALSE);
	else
	{
		*x=S->elem[S->top];  /*栈顶元素赋给x*/
		S->top--;  /*修改栈顶指针*/
		return (TRUE);
	}
}

/*顺序栈读取栈顶元素*/
int GetTop(SeqStack *S,ElementType *x)
{	/*将S栈顶元素读出,放到x所指的存储空间中,栈顶指针保持不变*/
	if(S->top==-1)  /*栈为空*/
		return (FALSE);
	else
	{
		*x=S->elem[S->top];  /*栈顶元素赋给x*/
		return (TRUE);
	}
}

 

本文标签:

版权声明:若无特殊注明,本文皆为《尤尤》原创,转载请保留文章出处。

本文链接:顺序栈的基本操作实现算法 - https://www.yxfseo.cn/post-58.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注