可以把栈想像成一个桶
进栈:就是把和桶口一样大的烧饼往桶里面扔
出栈:就是把烧饼拿出来
特点:先进后出。先扔进去的烧饼最后才能拿出来,最后扔进去的烧饼,第一个拿出来
typedef struct {
int data[MaxSize];//数据区
int top;//指向栈顶的指针
}Stack;
/**
* 入栈操作
*/
void push(Stack *s, int x) {
if(s->top == MaxSize - 1) {
printf("栈已经满了!");
} else {
s->top ++;
s->data[s->top] = x;
}
}
/**
* 出战操作
*/
int pop(Stack *s) {
int x;
if(s->top == -1) {
printf("栈已经空了");
} else {
x = s->data[s->top];
s->top--;
}
return x;
}
#include <stdio.h>
#define MaxSize 10
typedef struct {
int data[MaxSize];
int top;
}Stack;
/**
* 入栈操作
*/
void push(Stack *s, int x) {
if(s->top == MaxSize - 1) {
printf("栈已经满了!");
} else {
s->top ++;
s->data[s->top] = x;
}
}
/**
* 出战操作
*/
int pop(Stack *s) {
int x;
if(s->top == -1) {
printf("栈已经空了");
} else {
x = s->data[s->top];
s->top--;
}
return x;
}
void display(Stack *s) {
for(int i = s->top; i >= 0; i--) {
printf("%d", s->data[i]);
}
}
int main() {
Stack s;
s.top = -1;
push(&s, 1);
push(&s, 2);
push(&s, 3);
push(&s, 4);
push(&s, 5);
display(&s);
printf("\n");
pop(&s);
printf("出栈后\n");
display(&s);
return 0;
}
原文地址:http://blog.csdn.net/ttf1993/article/details/45725765