栈的概念
栈:一种特殊的线性表;其只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈顶是动态变化的,由一个称为栈顶指针(top)的变量指示。不含任何元素的栈成为空栈,栈又称为后进先出的线性表。
栈特性:后进先出的特殊线性表。
栈功能:将数据从一种序列改变到另一种序列。
栈的顺序存储结构
采用顺序存储结构的栈称为顺序栈。顺序栈利用一组连续的存储单元存放栈中的元素,存放顺序依次从栈底到栈顶。由于栈中元素之间的存放地址的连续性,在C语言中,同样采用数组实现栈的顺序存储。另外,增加一个栈顶指针 top ,用于指向顺序栈的栈顶元素。
栈的顺序存储结构类型定义描述如下:
#define MAX_SIZE 100
typedef struct Stack
{
DataType array[MAX_SIZE];
int top;
}Stack;
顺序栈结构示意图: