#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXSIZE 8
typedef int dataType;
typedef struct Stack
{
dataType date[MAXSIZE];
int top;
}Stack;
void initStack(Stack *s)//初始化堆栈函数
{
s->top=-1; //初始化top指向堆栈的最底部
memset(s->date,0,sizeof(dataType)*MAXSIZE);//将堆栈空间初始化为0(可省略该步骤)
}
void push(Stack *s,int e)
{
if (s->top==MAXSIZE-1) {
return;
}
s->top++;
s->date[s->top]=e;
}
void pop(Stack *s,int *e)
{
if (s->top==-1) {
return ;
}
*e=s->date[s->top];//通过传址的方式获取堆栈中最顶层的数据
s->top--;
}
int main(void)
{
Stack myTest;
int temp;
initStack(&myTest);
printf("Push Order:\n");
for (int i=0; i<8; i++) {
printf("%d ",i);
push(&myTest, i);
}
printf("\n");
printf("Pop Order:\n");
for (int i=0; i<8; i++) {
pop(&myTest, &temp);
printf("%d ",temp);
}
printf("\n");
return 0;
}
转载于:https://blog.51cto.com/8947509/1550922