定义一个栈,将5个整数依次入栈,然后依次弹出栈顶元素直至栈为空,并输出...
发布网友
发布时间:2024-03-19 10:26
我来回答
共2个回答
热心网友
时间:2024-07-26 22:41
#include <stdio.h>
#define size 100
typedef int Elemtype;
typedef struct sqstack{
Elemtype data[size];
int top;
}sqstack,*list;
void init(sqstack &s){
s.top=0;
}
int empty(sqstack s){
if (s.top==0)
return 0;
return 1;
}
int full(sqstack s){
if(s.top==size)
return 0;
return 1;
}
int push(sqstack &s,Elemtype e){
if(full(s))
{
s.data[s.top++]=e;
return 1;
}
return 0;
}
int pop(sqstack s,Elemtype &e){
if(empty(s)){
e=s.data[--s.top];
return 1;
}
return 0;
}
void main(){
sqstack s;
int e,n;
n=5;
init(s);
printf("push input\n");
for(int i=0;i<n;i++){
printf(" %d data:",i+1);
scanf("%d",&e);
push(s,e);
}
pop(s,e);
printf("pop top: %d\n",e);
}
热心网友
时间:2024-07-26 22:43
#include<stdlib.h>
#include<stdio.h>
#define MaxSize 1024//设空栈的最大长度为1024,可根据实际情况进行修改
typedef struct node
{
int data[MaxSize];
int top;
}SeqStack;
SeqStack* Init()
{
SeqStack *s;
s=(SeqStack *)malloc(sizeof(SeqStack));
s->top =-1;
return s;
}
void push(SeqStack *s,int x)
{
if(s->top ==MaxSize-1) return;
else
{
s->top ++;
s->data [s->top ]=x;
}
}
int pop(SeqStack *s)
{
if(s->top ==-1) return 0;
else
return s->data [s->top--];
}
void main()
{
SeqStack *s;
int t;
s=Init();
printf("请输入5入栈数字:\n");
for(int i=0;i<5;i++)
{
scanf("%d",&t);
push(s,t);
}
printf("出栈顺序\n");
while(s->top !=-1)
{
t=pop(s);
printf("%5d",t);
}
printf("\n");
}