概念
- 栈是只允许在一端进行插入或删除操作的线性表
- 栈顶:只允许删除或插入操作的一端。
- 栈顶:不允许许删除或插入操作的一端。
- 特点:后进先出(LIFO:last in first out)
顺序栈
#define MaxSize 10
存储结构
typedef struct LNode{
int data[MaxSize];
int top;
}SqStack;
初始化
void InitStack(SqStack &s)
{
s.top=-1;
}
进栈
bool PushStack(SqStack &s,int x)
{
if(s.top==MaxSize-1)return false;
s.top++;
s.data[s.top]=x;
return true;
}
出栈
bool PopStack(SqStack &s,int &elem)
{
if(s.top==-1)return false;
elem=s.data[s.top];
s.top--;
return true;
}
读取栈顶元素
bool GetTop(SqStack s,int &x)
{
if(s.top==-1)return false;
x=s.data[s.top];
return true;
}
上一节:线性表之循环链表的基本操作(c语言)
下一节:队列(c语言)