/*运行环境:win-tc*/
#include"stdio.h"
#include"conio.h" /*getch()涵数所用到的库文件*/
#include"malloc.h"
#define MAXSIZE 100
#define Null 0
typedef struct
{
float data[MAXSIZE]; /*定义数组的最大值*/
int top;
}SeqStack;
SeqStack* Init_SeqStack() /*初始化,动态生成存储空间*/
{
SeqStack* s;
s=(SeqStack*)malloc(sizeof(SeqStack));
s->top=-1;
return s;
}
int Push_SeqStack(SeqStack* s,float x) /*入栈*/
{
if(s->top==MAXSIZE-1)
{
printf("full stack");
return s;
}
else
{
s->top++;
s->data[s->top]=x;
return s;
}
}
int Pop_SeqStack(SeqStack* s) /*出栈*/
{
float x;
if(s->top==-1)
{
printf("empty stack");
return s;
}
else
{
while(s->top!=-1)
{
x=s->data[s->top];
s->top--;
printf("%.2f/t",x);
}
return s;
}
}
main()
{
float a;
SeqStack* s;
SeqStack* Init_SeqStack();
int Push_SeqStack(SeqStack* s,float x);
int Pop_SeqStack(SeqStack* s);
s=Init_SeqStack();
printf("please input the push number,by the end of 0:/n");
scanf("%f",&a);
while(a!=NULL) /*判断入栈的条件:以0结束*/
{
s=Push_SeqStack(s,a); /*缺点:0不能进栈*/
scanf("%f",&a); /*注:输入时不能以字符输入,只能输入数字*/
}
Pop_SeqStack(s);
getch();
}
结果如下: