实验二+栈和队列的应用+
更新时间:2024-05-01 17:29:01 阅读量: 综合文库 文档下载
攀枝花学院数据结构第三次实验
实验二 栈和队列的应用
1、实验目的
(1)熟练掌握栈和队列的结构,以及这两种数据结构的特点;
(2)能够在两种存储结构上实现栈的基本运算,特别注意栈满和栈空的判断条件及描述方法;
(3)熟练掌握链队列和循环队列的基本运算,并特别注意队列满和队列空的判断条件和描述方法;
2、实验内容
利用栈的基本操作实现将任意一个十进制整数转化为R进制整数.
3、实验步骤
(1)理解栈的基本工作原理;
(2)仔细分析实验内容,给出其算法和流程图; (3)用C语言实现该算法;
(4)给出测试数据,并分析其结果; (5)在实验报告册上写出实验过程。
4、实验帮助
算法为:
1) 定义栈的顺序存取结构
2) 分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等) 3) 定义一个函数用来实现上面问题: 十进制整数X和R作为形参 初始化栈
只要X不为0重复做下列动作
将X % R入栈 X=X/R
只要栈不为空重复做下列动作
栈顶出栈 输出栈顶元素
程序代码:
# include
typedef struct zan {
int data[100]; int top; }seqstack;
//置空栈
seqstack *intseqstack() {
seqstack *s;
s=(seqstack *)malloc(sizeof(seqstack)); s->top=-1; return s; }
//判断空栈
int empty_seqstack(seqstack *s) { if(s->top==-1)return 1;//为空栈 else return 0; }
//入栈
int push_seqstack(seqstack *s ,int x) {
if(s->top==99)return 0;//栈满不能入栈 else { s->top++;
s->data[s->top]=x; return 1; } }
//出栈
int pop_seqstack(seqstack *s) { int a;
if(empty_seqstack(s))return 0;//栈空不能出栈
else { a=s->data[s->top];//取出栈顶元素,并赋给x s->top--; return a; } }
int main() {
int x,r,c=0; seqstack *s;
s=intseqstack();//初始化,建立空栈
printf(\请输入要转换的整型:\scanf(\
printf(\请输入要转换的:\scanf(\
while(x!=0)//求余入栈 {
push_seqstack(s ,x%r); x=x/r; }
while(!empty_seqstack(s))//出栈 {
c=pop_seqstack(s); printf(\}
printf(\return 0; }
正在阅读:
实验二+栈和队列的应用+05-01
高考语文18个文言虚词的用法及其举例09-13
德国社会 文化05-27
钻石时尚香烟价格表11-16
我向往的童年开头06-17
送不出的礼物作文800字06-24
化保试卷11-08
论渠道成员的选择与激励12-23
黑镍除钴工艺的研究05-26
(二年级)教案---小羊羔07-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 队列
- 实验
- 应用