一、栈的顺序存储结构:
代码如下;
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 3
typedef int Datatype;
typedef struct
{
Datatype data[MAXSIZE];
int top;
}Sqstack;
void menu();
void Stack_Init(Sqstack *s);
void In_Stack(Sqstack *s,Datatype x);
int Out_Stack(Sqstack *s);
int main()
{
int select;
int x;
Sqstack s;
Stack_Init(&s);
while(1)
{
menu();
printf("请输入操作数:\n");
scanf("%d",&select);
switch(select)
{
case 1:printf("请输入入栈数据:\n");
scanf("%d",&x);
In_Stack(&s,x);
break;
case 2:printf("出栈的数据为:%d\n",Out_Stack(&s));break;
case 3:break;
case 0:exit(0);break;
default:break;
}
system("pause");
system("cls");
}
return 0;
}
void menu()
{
printf("(1)---请入栈!\n");
printf("(2)---请出栈!\n");
printf("(3)---输出栈中数据!\n");
printf("(0)---退出!\n");
}
void Stack_Init(Sqstack *s)
{
s->top=-1;
}
void In_Stack(Sqstack *s,Datatype x)
{
if(s->top>=MAXSIZE-1)
{
printf("栈已满!\n");
}
else
{
s->top=s->top+1;
s->data[s->top]=x;
printf("入栈成功!\n");
}
}
int Out_Stack(Sqstack *s)
{
int data;
if(s->top==-1)
{
printf("栈空!\n");
return 0;
}
else
{
data=s->data[s->top];
s->top=s->top-1;
printf("出栈成功!\n");
return data;
}
}在这里插入代码片