结构体定义部分及头文件
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct {
ElemType data[MAXSIZE];
int top;
} SeqStack;
函数名称:InitStack
函数参数:SeqStack *S传入地址(引用类型)
函数功能:初始化栈,给栈顶指针赋值,构造空栈
函数返回值:无
void InitStack(SeqStack *S) {
S->top=-1;
}
函数名称:Push
函数参数:SeqStack *S传入地址(引用类型) ElemType e整型数据
函数功能:进栈操作
函数返回值:无
void Push(SeqStack *S,ElemType e) {
if(S->top<MAXSIZE-1) {
S->top++;
S->data[S->top]=e;
} else
printf("SeqStack full!");
}
函数名称:Pop
函数参数:SeqStack *S传入地址(引用类型)
函数功能:出栈操作
函数返回值:ElemType(int),返回出栈的整型数据
ElemType Pop(SeqStack *S) {
int x;
if(S->top==-1)
printf("SeqStack empty!");
else {
x=S->data[S->top];
S->top--;
}
return x;
}
函数名称:GetTop
函数参数:SeqStack *S传入地址(引用类型)
函数功能:得到栈顶元素
函数返回值:ElemType(int),返回出栈的整型数据
ElemType GetPop(SeqStack *S) {
int x;
return x=S->data[S->top];
}
主函数
int main() {
SeqStack S;
while(1) {
printf("\n");
int choose1,e;
printf("Enter your choose!\n");
printf("********************\n");
printf("1.初始化栈**********\n");
printf("2.进栈**************\n");
printf("3.出栈**************\n");
printf("4.得到栈顶元素**************\n");
scanf("%d",&choose1);
switch(choose1) {
case 1:
InitStack(&S);
break;
case 2:
printf("please enter e:");
scanf("%d",&e);
Push(&S,e);
break;
case 3:
e=Pop(&S);
printf("Pop elem is:%d",e);
break;
case 4:
e=Pop(&S);
printf("GetPop elem is:%d",e);
break;
default:
printf("Error!");
}
printf("\n");
}
return 0;
}