数据结构-栈
概念 :只允许一端进行操作的线性存储结构。存取模式为FIFO(先进先出)。
分类
- 顺序栈 :满增栈,满减栈,空增栈,空减栈。
- 链表栈 。
详解
顺序栈详解
栈类型 | 解释 | 出入栈操作 |
---|---|---|
满增栈 | 栈顶不为空,存储地址由低到高 | 入栈:top++,入栈数据 出栈:出栈数据, top - - |
满减栈 | 栈顶不为空,存储地址由高到低 | 入栈:top - -,入栈数据 出栈:出栈数据,top++ |
空增栈 | 栈顶为空,存储地址由低到高 | 入栈:入栈数据,top++ 出栈:top - -,出栈数据 |
空减栈 | 栈顶为空,存储地址由高到低 | 入栈:入栈数据,top- - 出栈:top++,出栈数据 |
链表栈基本操作
结构体定义
typedef int DataType;//栈的存储类型
typedef struct node
{
DataType Data;
struct node *pNext;
}StackNode; //栈的结点
typedef struct list
{
StackNode *pTop;
int cLen;
}StackList; //链表栈
函数API声明
extern StackList *CreateStackList(); //创建链表栈
extern int PushStack(StackList *pList,DataType *data);//压栈
extern int PopStack(StackList *pList,DataType *data);//入栈
extern int GetTopStack(StackList *pList,DataType *data);//得到栈顶元素
extern