mirror of
https://github.com/krahets/hello-algo.git
synced 2025-07-24 18:55:36 +08:00
build
This commit is contained in:
@ -1581,50 +1581,56 @@ comments: true
|
||||
|
||||
/* 构造函数 */
|
||||
ArrayStack *newArrayStack() {
|
||||
ArrayStack *s = malloc(sizeof(ArrayStack));
|
||||
ArrayStack *stack = malloc(sizeof(ArrayStack));
|
||||
// 初始化一个大容量,避免扩容
|
||||
s->data = malloc(sizeof(int) * MAX_SIZE);
|
||||
s->size = 0;
|
||||
return s;
|
||||
stack->data = malloc(sizeof(int) * MAX_SIZE);
|
||||
stack->size = 0;
|
||||
return stack;
|
||||
}
|
||||
|
||||
/* 析构函数 */
|
||||
void delArrayStack(ArrayStack *stack) {
|
||||
free(stack->data);
|
||||
free(stack);
|
||||
}
|
||||
|
||||
/* 获取栈的长度 */
|
||||
int size(ArrayStack *s) {
|
||||
return s->size;
|
||||
int size(ArrayStack *stack) {
|
||||
return stack->size;
|
||||
}
|
||||
|
||||
/* 判断栈是否为空 */
|
||||
bool isEmpty(ArrayStack *s) {
|
||||
return s->size == 0;
|
||||
bool isEmpty(ArrayStack *stack) {
|
||||
return stack->size == 0;
|
||||
}
|
||||
|
||||
/* 入栈 */
|
||||
void push(ArrayStack *s, int num) {
|
||||
if (s->size == MAX_SIZE) {
|
||||
void push(ArrayStack *stack, int num) {
|
||||
if (stack->size == MAX_SIZE) {
|
||||
printf("stack is full.\n");
|
||||
return;
|
||||
}
|
||||
s->data[s->size] = num;
|
||||
s->size++;
|
||||
stack->data[stack->size] = num;
|
||||
stack->size++;
|
||||
}
|
||||
|
||||
/* 访问栈顶元素 */
|
||||
int peek(ArrayStack *s) {
|
||||
if (s->size == 0) {
|
||||
int peek(ArrayStack *stack) {
|
||||
if (stack->size == 0) {
|
||||
printf("stack is empty.\n");
|
||||
return INT_MAX;
|
||||
}
|
||||
return s->data[s->size - 1];
|
||||
return stack->data[stack->size - 1];
|
||||
}
|
||||
|
||||
/* 出栈 */
|
||||
int pop(ArrayStack *s) {
|
||||
if (s->size == 0) {
|
||||
int pop(ArrayStack *stack) {
|
||||
if (stack->size == 0) {
|
||||
printf("stack is empty.\n");
|
||||
return INT_MAX;
|
||||
}
|
||||
int val = peek(s);
|
||||
s->size--;
|
||||
int val = peek(stack);
|
||||
stack->size--;
|
||||
return val;
|
||||
}
|
||||
```
|
||||
|
Reference in New Issue
Block a user