从终端输入一组数据进行进栈、出栈操作并将其结果打印出来(采用顺序栈的方式)
来源:互联网 发布:流行网络语 编辑:程序博客网 时间:2024/05/01 19:31
利用栈的基本知识进行简单程序的编程,从终端输入数据经压栈、出栈操作。最后将其列印出来。
#include<stdio.h>
#define MaxSize 10
typedef int BOOL;
typedef struct stack{
int Top,MaxStack;
int Element[MaxSize];
}Stack;
void Creat_Stack(Stack *p,int m)
{
p->Top=0;
p->MaxStack=m;
}
BOOL Is_Empty(Stack *p)
{
return p->Top<1;
}
BOOL Is_Full(Stack *p)
{
return p->Top>=MaxSize;
}
void Push(Stack *p,int x)
{
if(Is_Full(p))
printf("Overflow/n");
else
p->Element[++p->Top]=x; //注意这里要先将指针进一,后在将值赋给新的地址位置
}
void Pop(Stack *p)
{
if(Is_Empty(p))
printf("underflow/n");
else
p->Top--; //指针倒退一个
}
void PrintStack(Stack *p)
{
if(Is_Empty(p))
printf("/nIs Empty!/n/n");
else
{
printf("%d, ",p->Element[p->Top--]); //打印出元素,同时将指针后退一个位置
PrintStack(p);
}
}
void main()
{
Stack s;
int i,n;
int a[MaxSize];
Creat_Stack(&s,MaxSize); /*Construction of a capacity for MaxSize air for stack*/
printf("please put into number element:/n");
scanf("%d",&n); //输入你想从终端输入几个数据进栈
for(i=0;i<n;i=i++)
{
scanf("%ld",a+i); //从终端输入数据
}
for(i=0;i<n;i++)
{
Push(&s,a[i]); //压栈
printf("%d,",a[i]);
}
printf("/n/n");
Pop(&s); //出栈
Pop(&s);
PrintStack(&s); //列印
}
编译运行,结果正确!
结果如下:
please put into number element:
5 回车
9
8
7
6
5
回车
9,8,7,6,5,
7,8,9
is empty!
- 从终端输入一组数据进行进栈、出栈操作并将其结果打印出来(采用顺序栈的方式)
- 数据分割算法:输入一个数计算出其位数,并打印出每一位的数
- Java小程序:输入一组复数并打印出来
- (1)输入学生的基本信息,计算每个学生的平均分,并将学生信息存入磁盘文件“stud”中; (2)将文件stud中的数据按平均分从高到低的顺序进行排序,并将排序结果存放到文件“stud_sort”中
- c++输入一组整型数据 不知道长度 回车键结束 并将其存入数组当中
- 求栈的出栈方式的个数和打印出栈顺序
- 读入一组文本行,并将最长的行打印出来
- 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
- 【程序27】利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
- 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
- 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
- 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
- c++ 采用链式结构实现关于入栈,出栈,打印栈的操作
- 采用顺序存储实现栈的初始化、入栈、出栈操作。
- 利用链栈的基本运算,通过输入将字符进栈,然后输出其出栈序列
- arduino将从串口接收到的数据打印出来
- 对终端输入的行内容进行字典排序并把结果输出出来
- c#:输入5个字符,将其倒序打印出来
- TLC2543驱动程序
- 项目管理师_备考3
- 向C#的String类添加按字节截取字符串的扩展方法
- C#日期格式化
- wxString与std::string之间的转换
- 从终端输入一组数据进行进栈、出栈操作并将其结果打印出来(采用顺序栈的方式)
- Convert 与转化时间有关的实例
- 网络字节序与主机字节序
- 冒泡排序法
- TreeView的Data的内存泄漏问题
- 使用.NET 2.0中的秒表-Stopwatch类进行速度测试
- **
- TLC2543驱动2
- APCS 简介