下面是用 C 语言设计一个栈的示例代码:
#define MAX_SIZE 100
/* 栈的数据结构 */
typedef struct stack {
int data[MAX_SIZE];
int top;
} Stack;
/* 初始化栈 */
void init_stack(Stack *s) {
s->top = -1;
}
/* 判断栈是否为空 */
int is_empty(Stack *s) {
return (s->top == -1);
}
/* 判断栈是否已满 */
int is_full(Stack *s) {
return (s->top == MAX_SIZE - 1);
}
/* 入栈操作 */
void push(Stack *s, int value) {
if (is_full(s)) {
printf("Error: stack is full.\n");
return;
}
s->data[++s->top] = value;
}
/* 出栈操作 */
int pop(Stack *s) {
if (is_empty(s)) {
printf("Error: stack is empty.\n");
return -1;
}
return s->data[s->top--];
}
使用时,你可以这样:
int main() {
Stack s;
init_stack(&s); // 初始化栈
push(&s, 1); // 入栈
push(&s, 2);
push(&s, 3);
int value = pop(&s); // 出栈
printf("%d\n", value); // 输出 3
value = pop(&s);
printf("%d\n", value); // 输出 2
value = pop(&s);
printf("%d\n", value); // 输出 1
return 0;
}
希望这些代码能帮助到你!