版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告(二)分校名称 学号姓名实验日期2010-11-11专业名称计算机科学与技术课程名称数据结构批改教师主持教师实验成绩校外评阅教师实验名称栈、队列、递归程序设计使用主要设备PC,VC++6.0实验要求正确理解栈的现金后出的操作特点,建立初始栈,通过操作显示栈底元素程序中要体现出建栈的过程和取出栈底元素后恢复栈的入栈过程,按堆栈的操作规定打印结果栈的元素比较体重二种不同的递归程序设计和执行过程的差别正确理解递归程序的执行过程显示计算结果实验报告内容:调试中碰到的问题及解决方法调试成功的程序清单实验结论2.1栈和队列的基本操作编写一个算法,输出指定栈中的栈底元素,并使得原栈中的元素倒置。(1)正确理解栈的先进后出的操作特点,建立初始栈,通过相关操作显示栈底元素。(2)程序中要体现出建栈过程和取出栈底元素后恢复栈的入栈过程,按堆栈的操作规则打印结果栈中的元素。设计程序代码如下://数据结构实验2.1栈和队列的基本操作//调试环境:VisualC++6.0//-----库文件的预设和定义#include<stdio.h>#include<malloc.h>#defineMaxSize100typedefcharElemType;typedefstruct{ ElemTypedata[MaxSize]; inttop; //栈顶指针}SeqStack;//定义栈typedefstruct{ ElemTypeelem[MaxSize]; intfront,rear; //队首和队尾指针}SqQueue;//定义队列//---初始栈函数voidInitStack(SeqStack*&s){ s=(SeqStack*)malloc(sizeof(SeqStack)); s->top=-1;}//----进栈函数intPush(SeqStack*&s,ElemTypee){ if(s->top==MaxSize-1) return0; s->top++; s->data[s->top]=e; return1;}//---显示栈函数voidDispStack(SeqStack*s){ inti; for(i=s->top;i>=0;i--) printf("%c",s->data[i]); printf("\n");}//---显示栈底元素voidDispBottomStack(SeqStack*s){ printf("%c",s->data[0]);//先进后出,栈底元素为第一个元素,即data[0] printf("\n");}//---判空栈函数intStackEmpty(SeqStack*s){ return(s->top==-1);}//---出栈函数intPop(SeqStack*&s,ElemType&e){ if(s->top==-1) return0; e=s->data[s->top]; s->top--; return1;}//---初始队列函数voidInitQueue(SqQueue*&q){ q=(SqQueue*)malloc(sizeof(SqQueue)); q->front=q->rear=0;}//---入队列函数intInQueue(SqQueue*&q,ElemTypee){ if((q->rear+1)%MaxSize==q->front)//队满 return0; q->rear=(q->rear+1)%MaxSize; q->elem[q->rear]=e; return1;}//---出队列函数intOutQueue(SqQueue*&q,ElemType&e){ if(q->front==q->rear)//队空 return0; q->front=(q->front+1)%MaxSize; e=q->elem[q->front]; return1;}//---判空队列函数intQueueEmpty(SqQueue*q){ return(q->front==q->rear);}//-----主程序voidmain(){ ElemTypee; SeqStack*s; printf("(1)初始化栈s\n"); InitStack(s); printf("(2)栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(3)依次进栈元素a,b,c,d,e\n"); Push(s,'a');//入栈元素1 Push(s,'b');//入栈元素2 Push(s,'c');//入栈元素3 Push(s,'d');//入栈元素4 Push(s,'e');//入栈元素5 printf("(4)栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(5)从栈顶到栈底元素:");DispStack(s); printf("(6)栈底元素为:");DispBottomStack(s); printf("(7)出栈/入队列序列:"); SqQueue*q; InitQueue(q); while(!StackEmpty(s)) { Pop(s,e);//出栈 printf("%c",e); InQueue(q,e);//入队 } printf("\n"); printf("(8)栈为%s,",(StackEmpty(s)?"空":"非空")); printf("队列为%s\n",(QueueEmpty(q)?"空":"非空")); printf("(9)出队列/入栈序列:"); while(!QueueEmpty(q)) { OutQueue(q,e);//出队 Push(s,e);//入栈 printf("%c",e); } printf("\n"); printf("(10)栈为%s,",(StackEmpty(s)?"空":"非空")); printf("队列为%s\n",(QueueEmpty(q)?"空":"非空")); free(q);//释放队列 printf("(11)从栈顶到栈底元素:");DispStack(s); free(s);//释放栈 }程序运行结果如下:2.2递归程序设计给定一个5位的十进制正整数,用递归法分别编制程序:(1)要求从低位到高位逐次输出各位数字。(2)要求从高位到低位逐次输出各位数字。程序代码如下://数据结构实验2.2递归程序设计//调试环境:VisualC++6.0//-----库文件的预设和定义#include<stdio.h>#include<math.h>voidout(intn,inti)//从高位到低位输出函数{intx,y;y=int(pow(10,i));if(n!=0){x=n/y;n=n-x*y;printf("%d",x);}elseprintf("0");i--;if(i>=0)out(n,i);}voidout1(intm,intj)//从低位到高位输出函数{intx,z;if(m!=0){x=int(m/10);z=m-x*10;m=x;printf("%d",z);}elseprintf("0");j--;if(j>=0)out1(m,j);}voidmain(){intm,n,o,x,i,j;printf("输入需要排列的数字:\n");scanf("%d",&o);m=n=o;x=n;i=-1;while(x!=0){x=x/10;i++;}//求出i为十进制正整数位数j=i;printf("\n");printf("从高位到低位逐次输出各位数字:");out(n,i);printf("\n");printf("从低位到高位逐次输出各位数字:");out
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 30214-2013飞机 操纵钢索用带球轴承非金属滑轮 尺寸和载荷》
- 深度解析(2026)《GBT 30104.204-2013数字可寻址照明接口 第204部分:控制装置的特殊要求 低压卤钨灯(设备类型3)》
- 深度解析(2026)《GBT 30062-2013钢管术语》
- 深度解析(2026)《GBT 29784.3-2013电子电气产品中多环芳烃的测定 第3部分:液相色谱-质谱法》
- 《GBT 7631.17-2014润滑剂、工业用油和相关产品(L类)的分类 第17部分:E组(内燃机油)》(2026年)合规红线与避坑实操手册
- 《GAT 1058-2013警用数字集群(PDT)通信系统 空中接口呼叫控制层技术规范》(2026年)合规红线与避坑实操手册
- 《DL/T 1382-2023涉电力领域市场主体信用评价指标体系分类及代码》(2026年)合规红线与避坑实操手册
- 2026年社区旧衣回收培训服务合同
- 贵州省遵义市红花岗区2025年中考一模英语试题(含答案)
- 维生素D调控甲状腺自身免疫总结2026
- 2026湖南娄底市市直事业单位高层次和急需紧缺人才招聘集中组考18人备考题库含答案详解(预热题)
- 2026届湖北省武汉市高三四调英语试题(含答案和音频)
- 2025年csco肾癌诊疗指南
- 深度融合与创新:信息技术赋能初中数学教学新范式
- 【新教材】外研版(2024)八年级下册英语Unit 1-Unit 6语法练习册(含答案解析)
- 中国艺术研究院社会招聘试题
- 【《基于UASB-MBR工艺的垃圾渗滤液处理系统工艺计算设计案例》7400字】
- 2026年及未来5年市场数据中国硫酸钙晶须行业发展潜力分析及投资战略咨询报告
- 慢性肾病营养不良干预新策略
- 高铁血红蛋白血症的诊断与处理原则
- 重症医学5c考试题库及答案
评论
0/150
提交评论