【发布时间】:2020-02-21 09:21:40
【问题描述】:
这是我自己的想法,不是从书上,而是从我自己的角度来看,为什么没有按照场景实现呢?
由于代码长度,堆栈省略了空和满
#include<stdio.h>
typedef struct stack{
int key[100];
int top;
}stack;
void init(stack* a){
int i;
for(i=0;i<100;i++){
a->key[i]=0;
}
a->top = 0;
}
void push(stack* a, int num){
a->key[a->top++] = num;
}
int pop(stack* a){
return a->key[a->top--];
}
int main(void){
stack a;
init(&a);
push(&a,10); push(&a,20); push(&a,30);
printf("%d ",pop(&a)); printf("%d ",pop(&a)); printf("%d ",pop(&a));
return 0;
}
我希望输出 30 20 10 但实际输出是 0 30 20
【问题讨论】: