栈的实现
栈的结构可以是基于数组的。它拥有两个基本操作:出栈和入栈。而实现操作需要一个 top 表示顶点。
很简单!
上代码
#include <stdio.h>
#define MAXSIZE 20
typedef int ElemType;
typedef int Status;
typedef struct
{
ElemType data[MAXSIZE];
int top;
}SqStack;
Status Push(SqStack *s, ElemType e)
{
// 栈为 0 到 MAXSIZE - 1
if (s->top == MAXSIZE - 1) return 0;
s->top += 1;
s->data[s->top] = e;
return 1;
}
Status Pop(SqStack *s)
{
if (s->top == -1) return 0;
s->top -= 1;
return 1;
}
void Visit(SqStack *s)
{
int i = 0;
while (i <= s->top)
{
printf("%d ", s->data[i++]);
}
printf("\n");
}
int main()
{
// 建立一个栈,top 为 -1 时为空栈
SqStack s;
s.top = -1;
// 压入 3 个数
Push(&s, 1);
Push(&s, 2);
Push(&s, 3);
// 显示
Visit(&s);
// 删除 1 个数
Pop(&s);
Visit(&s);
// 防止控制台消失
getchar();
return 0;
}
运行结果
O(∩_∩)O~~