利用顺序表建立一个栈。分别编写入栈函数和出栈函数,对键盘输入的,数量未知的整数进行出栈和入栈的操作。每次调用入栈函数或出栈函数时,实现一个整数的入栈或出栈;出栈的整数需要打印出来。
运行结果及代码如下,如有帮助,请帮忙采纳一下,谢谢。
代码:
#include<stdio.h>
#define MAXLEN 100
typedef int elementtype;
typedef struct
{
elementtype element[MAXLEN];
int top;
}SqStack;
SqStack InitStack_sq()
{
SqStack s;
s.top = -1;
return s;
}
int Push_sq(SqStack* s,elementtype x)
{
if(s->top == MAXLEN-1)
return 0;
s->top++;
s->element[s->top] = x;
return 1;
}
int Pop_sq(SqStack* s,elementtype* x)
{
if(s->top == -1)
return 0;
*x = s->element[s->top];
s->top--;
}
int main()
{
SqStack sk = InitStack_sq();
int op,data,res;
while(1)
{
printf("请选择你的操作:1.入栈 2.出栈 3.退出\n");
scanf("%d",&op);
switch(op)
{
case 1:
printf("请输入一个数据:");
scanf("%d",&data);
Push_sq(&sk,data);
break;
case 2:
res = Pop_sq(&sk,&data);
if(res)
printf("出栈数据:%d\n",data);
else
printf("出栈失败\n");
break;
case 3:
return 0;
}
}
return 0;
}