堆栈是一个在计算机科学中经常使用的抽象数据类型。堆栈中的物体具有一个特性: 最后一个放入堆栈中的物体总是被最先拿出来, 这个特性通常称为后进先出(LIFO)队列。 堆栈中定义了一些操作。 两个最重要的是PUSH和POP。 PUSH操作在堆栈的顶部加入一 个元素。POP操作相反, 在堆栈顶部移去一个元素, 并将堆栈的大小减一。(图片和解释引用百度百科)
栈底指针是不动的,插入,删除都是对栈顶指针进行移动
基本操作的实现:栈的构造,判空,插入,删除,清空,销毁,打印
栈的定义:
typedef struct{
ElemType *base; //栈底指针
ElemType *top; //栈顶指针
int stacksize;
}SqStack;
栈的基本操作:
/*操作构造一个空栈S。*/
InitStack(&S);
/*初始条件:栈S已存在。*/
/*操作结果:栈S被销毁。*/
DestroyStack(&S);
/*初始条件:栈S已存在。*/
/*操作结果:将S清为空栈。*/
ClearStack(&S);
/*初始条件:栈S已存在。*/
/*操作结果:若栈S为空栈