栈的定义
一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。
栈的基本操作
压栈:栈的插入操作叫做进栈、压栈、入栈,入栈数据在栈顶。
出栈:栈的删除操作叫做出栈。出栈数据也在栈顶。
所以我们可以用链表,顺序表实现栈,但考虑到栈的结构,我们只有尾删和尾插操作,所以用顺序表实现更为方便。
栈实现
c语言顺序表实现:
栈的定义
typedef int Data;
typedef struct stack{
Data* _data;
int _size;
int _capacity;
}stack;
栈的初始化
void init(stack* stack){
if (stack == NULL){
return;
}
stack->_data = NULL;
stack->_capacity = stack->_size = 0;
}
判空(增容)
void checkcapacity(stack* stack)