一.栈
1.栈(Stack):只允许在一端进行插入或者删除的线性表
栈顶:允许线性表的插入和删除的一端
栈底:不允许插入和删除的那一端
栈又称为后进先出(Last First Out)的线性表简称LIFO
这里阐明一点访问栈里的元素就代表着栈的销毁,当栈里的元素出栈时才能访问到该元素
2.c语言实现栈
typedef int StackDataType;
typedef struct Stack
{
StackDataType* a; //动态内存
int top; //栈顶
int capacity; //栈的容量
}ST;
//接口
void StackInit(ST* st); //初始化栈
void StackDestory(ST* st); //销毁栈
void StackPush(ST* st, StackDataType x); //入栈
void StackPop(ST* st); //出栈
bool StackEmpty(ST* st); //查看栈是否为空
StackDataType StackTop(ST* st);//查看栈顶元素
int StackSize(ST* st); //栈中元素的个数
1.初始化栈
栈是动态开辟的空间只需要将数组的指针置为空即可,栈顶置为0,容量置为0
void StackInit(ST* ps)
{
assert(ps);
ps->a &