栈(Stack)
栈包括两种:数据结构中的栈和内存中的栈。
栈 | 含义 |
---|---|
数据结构中 | 是一种存储方式,规则是先进后出(First In Last Out) |
内存中 | 是一种确实存在的物理结构,在内存中用于存放函数的参数值,局部变量的值等 |
栈的实现:顺序表或者链表
这里我用的是顺序表,不过顺序表实现栈有一个缺点,顺序表的扩容比较麻烦
typedef struct Stack{
int array[100];
int size;
}Stack;
//初始化
void StackInit(Stack *s){
size = 0;
}
//销毁
void StackDestory(Stack *S){
size = 0;
}
//插入
void StackPush(int v){
s->array[s->size++] = v;
}
//删除
void StackPop(){
s->size--;
}
//返回栈顶元素
int StackTop(){
return s->array[s->size-1];
}
//返回栈内数据个数
int StackSize(){
return s->size;
}
//返回栈内是否为空栈
int StackEmpty(){
return !s->size;
}