简单说一下几个类型的栈堆吧
顺序栈
// 顺序栈堆是拥有后进先出的特点,就是所谓的“FILO”,利用这一特点。
顺序栈由于是数组表示栈,所以栈中空间是连续的,栈底位置不变,
栈顶(指针)位置变化。
#include <stdio.h>
#define Stack_Size 10 //栈中元素最大值
#define ElementType int
typedef struct{
ElementType e[Stack_Size]={
0};//初始化栈中元素
int top;//存放栈顶指针下标
}SeqStack;
void InitStack(SeqStack *s){
s->top=-1;//-1表空栈
}
int Push(SeqStack *s,ElementType x){
if(s->top==Stack_Size-1)//判断是否栈满
return false;
s->top++;
s->e[s->top]=x;
return true;
}
int Pop(SeqStack *s,ElementType &x){
if(s->top==-1)//判断是否栈空
return false;
x=s->e[s->top];
s->top--;
return true;
}
int PrintStack(SeqStack *s){
for(int i=0;i<=Stack_Size-1;i++)//遍历栈
printf("%d ",s->e[i]);
}