栈:
代码实现:
栈的定义:
//定义
typedef int StackDataType;
//因为是动态数组
typedef struct Stack {
StackDataType* array;
StackDataType size; //容量 //有效元素个数
StackDataType top; //栈顶 //因为栈顶经常改变所以要特定的指定栈顶
}Stack;
功能实现:初始化、销毁、入栈、出栈、判空、返回栈顶元素
//初始化
int chuStack(Stack* s) {
s->size = 0; //动态的数组容量是动态增长的,为0就有栈了
return 0;
}
//销毁
int DeleteStack(Stack* s) {
s->size = 0; //销毁也是,为0就有什么数据都没有了
return 0;
}
//入栈
int InitStack(Stack* s, int date) {
s->array[s->size++] = date; //让数组数据最后一个加1个位置存date
return 0;
}
//出栈
int PushStack(Stack* s) {
s->size--; //size -1 就数据-1;数据出栈
return 0;
}
//返回栈顶元素
int ReturnTop(Stack* s) {
return s->array[s->size-1];
}
//判空
int EmptyStack(Stack* s) {
if (s->size!=0) {
return 1;
}
else {
return 0;
}
}