菜鸟笔记
提升您的技术认知

阅读 : 146

栈概念

栈(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;