本博客我们利用静态顺序表实现栈。
顺序栈,即栈的顺序存储结构是利用一组地址连续的存储单元依次存放。
定义
#pragma once
//数据类型定义
typedef int SDataType;
//静态数组容量定义
#define MAX_LEN 100
//栈结点定义
typedef struct {
SDataType array[MAX_LEN];
int top; //职责就是顺序表的size
}Stack;
初始化 ----Init
void StackInit(Stack *stack){
stack->top = 0;
}
销毁
void StackDestroy(Stack *stack){
stack->top = 0;
}
入栈 ----Push
void StackPush(Stack *stack,SDataType val){
assert(stack);
assert(stack->top < MAX_LEN);
stack->array[stack->top] = val;
stack->top++;
}
出栈 ----Pop
void StackPop(Stack *stack){
assert(stack);
assert(stack->top < 0);
stack->top--;
}
返回栈顶元素 ----Top
SDataType StackTop(Stack *stack){
assert(stack);
assert(stack->top < 0);
return stack->array[stack->top-1];
}
判断空栈 ----Empty
int StackEmpty(const Stack *stack){
return stack->top == 0?1:0;
}
返回栈内数据个数 ----Size
int StackSize(const Stack *stack){
return stack->top;
}
另外提供顺序栈(动态版)的博客链接:
【 https://blog.csdn.net/qq_42351880/article/details/88956722 】