栈概念
栈(stack)是一种特殊的线性数据结构,只能够在一端(即栈顶)进行,采用后进先出原则(LIFO, Last In First Out),基本操作有加入数据(push)和输出数据(pop)两种运算。
栈的表示和实现
1.顺序栈
定义:一组地址连续的存储单元依次存放自栈底到栈顶的数据元素
top : 用来表示栈顶元素的位置
- top==-1表示空栈
- top==NULL表示栈不存在
- top>stacksize元素溢出
结构体定义:
#define n 500//定义顺序栈大小
struct stack
{
int top;//栈顶指针
int a[n];//顺序栈数组
} SeqStack;
2.链栈
结构体定义:
typedef struct node
{
int data;//定义数据类型
struct node*next;//定义链栈
} ChaiinStack;