
栈的顺序存储结构定义:
1、栈是限定只能在表尾删除和插入操作的线性表。
2、允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。
3、栈的插入操作称为进栈,也称压栈、入栈。
4、栈的删除操作称为出栈,也称弹栈。
栈中的数据只有一种方式出栈,即先进后出,所以出栈的可能数目跟入栈的可能排列数目是一致的。a的出入有2中可能,b的出入有2种可能,c的出入有2种可能,d只需要关系入,只有一种可能。所以可能的出栈方式数为2*2*2*1=8种
入栈顺序:a、b、c、d。出栈顺序可以是:d、c、b、a;a、b、c、d;b、a、c、d很多,但要把栈想像成一个没盖子的纸箱,取出东西时只能从最上层取,放进东西也只能放在最上层,所以栈是一个“后进先出”或“先进后出”的顺序存储结构。

扩展资料:
栈的顺序存储结构是利用内存中的一片起始位置确定的连续存储区域来存放栈中的所有元素,另外为了指示栈顶的准确位置,还需要引入一个栈顶指示变量top,采用顺序存储结构的栈称为顺序栈(sequence stack)。设数组data[MAXSIZE]为栈的存储空间,其中MAX-SIZE是一个预先设定的常数,为允许进栈结点的最大可能数目,即栈的容量。
初始时栈空,top等于0。当top不等于0时,data[0]为栈底元素,即为当前停留在栈中时间最长的元素;而data[top-1]为最后入栈的元素,即为栈顶元素。
栈同顺序表和链表一样,栈也是用来存储逻辑关系为 "一对一" 数据的线性存储结构。
栈的具体实现
栈是一种 "特殊" 的线性存储结构,因此栈的具体实现有以下两种方式:
顺序栈:采用顺序存储结构可以模拟栈存储数据的特点,从而实现栈存储结构;
链栈:采用链式存储结构实现栈结构;
栈存储结构与之前所学的线性存储结构有所差异,这缘于栈对数据 "存" 和 "取" 的过程有特殊的要求:
栈只能从表的一端存取数据,另一端是封闭的;
在栈中,无论是存数据还是取数据,都必须遵循"先进后出"的原则,即最先进栈的元素最后出栈。
通常,栈的开口端被称为栈顶;相应地,封口端被称为栈底。因此,栈顶元素指的就是距离栈顶最近的元素。
一、顺序栈
栈的顺序存储结构简称为顺序栈,它是运算受限的顺序表。因此,可用数组来实现顺序栈。
因为栈底位置是固定不变的,所以可以将栈底位置设置在数组的两端的任何一个端点;
栈顶位置是随着进栈和退栈操作而变化的.
栈的顺序存储表示 — 顺序栈
#include
template
private:
int top; //栈顶数组指针
Type *elements; //栈数组
int maxSize; //栈最大容量
public:
Stack ( int=10 ); //构造函数
~Stack ( ) {
delete[ ] elements;
}//析构函数
void Push ( const Type & item ); //入栈
Type Pop ( ); //出栈
Type GetTop ( ); //取栈顶元素
void MakeEmpty ( ) { top=-1; } //置空栈
int IsEmpty ( ) const {
return top == -1;
}
int IsFull ( ) const{
return top == maxSize-1;
}
}
void Push ( const Type & item ); //入栈
Type Pop ( ); //出栈
Type GetTop ( ); //取栈顶元素
void MakeEmpty ( ) { top=-1; } //置空栈
int IsEmpty ( ) const {
return top == -1;
}
int IsFull ( ) const {
return top == maxSize-1;
}
}
构造函数
template
Stack ( int s ) : top (-1), maxSize (s) {
elements = new Type[maxSize];
}
template
Push ( const Type & item ) {
assert ( !IsFull ( ) );或//先决条件断言
if(top != maxSize-1 )
elements[++top] = item; //加入新元素
}
template
assert ( !IsEmpty ( ) ); //先决条件断言
return elements[top--]; //退出栈顶元素
}
template
GetTop ( ) {
assert ( !IsEmpty ( ) ); //先决条件断言
return elements[top]; //取出栈顶元素
}
以上就是关于栈的顺序存储结构,栈的入栈和出栈的顺序规律的全部内容,以及栈的顺序存储结构的相关内容,希望能够帮到您。