- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构与算法》实验报告
专业 班级 姓名 学号 实验项目
实验二 栈和队列的基本操作。
实验目的
1、掌握栈的基本操作:初始化栈、判栈为空、出栈、入栈等运算。
掌握的基本操作:初始化、判为空、出、入等运算。利用栈的基本操作实现将任意一个十进制整数转化为R进制整数算法:1、定义栈的顺序存取结构2、分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)3、定义一个函数用来实现上面问题:十进制整数X和R作为形参初始化栈只要X不为重复做下列动作将XR入栈X=X/R
只要栈不为空重复做下列动作栈顶出栈输出栈顶元素{
int *base; /*栈底指针*/
int *top; /*栈顶指针*/
int stacksize; /*当前已分配存储空间*/
} SqStack;
2、队列的应用
由于是要打印一个数列,并且由于队列先进先出的性质,肯定要利用已经进队的元素在其出队之前完成杨辉三角的递归性。即,利用要出队的元素来不断地构造新的进队的元素,即在第N行出队的同时,来构造杨辉三角的第N+1行,从而实现打印杨辉三角的目的。
队列抽象数据结构描述
typedef struct SeqQueue
{
int data[MAXSIZE];
int front; /*队头指针*/
int rear; /*队尾指针*/
}SeqQueue;
(二)总体设计
1、栈
(1)主函数:统筹调用各个函数以实现相应功能
int main()
(2)空栈建立函数:对栈进行初始化。
int StackInit(SqStack *s)
(3)判断栈空函数:对栈进行判断,若栈中有元素则返回1,若栈为空,则返回0。
int stackempty(SqStack *s)
(4)入栈函数:将元素逐个输入栈中。
int Push(SqStack *s,int x)
(5)出栈函数:若栈不空,则删除栈顶元素,并用x返回其值。
int Pop(SqStack *s,int x)
(6)进制转换函数:将十进制数转换为R进制数
int conversion(SqStack *s)
2、队列
(1)主函数:统筹调用各个函数以实现相应功能
void main()
(2)空队列建立函数:对队列进行初始化。
SeqQueue *InitQueue()
(3)返回队头函数: 判断队是否为空,若不为空则返回队头元素。
int QueueEmpty(SeqQueue *q)
(4)入队函数:将元素逐个输入队列中。
void EnQueue(SeqQueue *q,int x)
(5)出队函数:若队列不空,则删除队列元素,并用x返回其值。
int DeQueue(SeqQueue *q)
(6)计算队长函数:计算队列的长度。
int QueueEmpty(SeqQueue *q)
(7)输出杨辉三角函数:按一定格式输出杨辉三角。
void YangHui(int n)
(三)各函数的详细设计:
1、栈
(1)int main()主函数
定义s为栈类型
调用函数建立空栈
调用进制转换函数
返回0值
(2)int StackInit(SqStack *s) 空栈建立函数
动态分配内存
判断分配成功并返回相应的值
若成功,初始化存储空间
(3)int stackempty(SqStack *s) 判断栈空函数
若栈为空,返回0,否则返回1
(4)int Push(SqStack *s,int x) 入栈函数
比较栈中元素所占空间与已分配存储空间
若栈满,追加存储空间
若存储失败则返回0
存储空间不够,添加增量
逐个输入数据元素
返回x的值
(5)int Pop(SqStack *s,int x) 出栈函数
如果栈为空,则返回0
若栈不空,则删除栈顶元素,用x返回其值
(6):int conversion(SqStack *s) 进制转换函数
输入要转化的十进制数
输入要转化为几进制
运用求余运算改变进制数
运用选择结构控制十六进制的输出方式
2、队列
(1)void main()主函数
输入杨辉三角的行数
调用杨辉三角输出函数
输出杨辉三角
(2)SeqQueue *InitQueue()空队列建立函数
动态分配
您可能关注的文档
- 浙江省温州市第八高级中学2016届高三上学期期中考试语文试题概念.doc
- 一种实心轮胎拆装及防脱胎结构概念.doc
- 一种神经内科用电治疗仪概念.doc
- 浙江省台州市书生中学2015-2016学年高二信息技术上学期期中试题概念.doc
- 一种用于柔性超级电容器的多孔蜂巢状氧化锰概念.doc
- 一种可调式数字直流稳压电源的设计概念.doc
- 浙江省台州市书生中学2015-2016学年高二生物上学期期中试题概念.doc
- 一照一码-申请表及须知-公司设立登记(备案)申请书(含委托代理人证明)概念.doc
- 浙江省台州市书生中学2015-2016学年高二地理下学期第一次月考试题概念.doc
- 浙江省温州市2015届高三下学期第三次适应性测试理科综合试题概念.doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 2022医院医疗机构开展违反中央八项规定精神突出问题专项治理的实施方案(详细版).pdf VIP
- 半导体工艺炉的炉门及半导体工艺炉.pdf VIP
- 测绘行业安全生产汇报.pptx VIP
- 半导体后端工艺半导体封装的作用、工艺和演变.docx VIP
- 半导体工艺原理--半导体工艺原理(贵州大学).ppt VIP
- 麦肯锡中国银行业CEO季刊(2020年秋)-麦肯锡-224页正式版.pdf VIP
- 走进潮汕文化ppt课件(优质ppt).pptx
- DG_TJ 08-2439-2024 建筑工程“多测合一”技术标准(正式版).pdf VIP
- Camera客观标准测试.pdf VIP
- 2024年湖北省恩施州恩施市六角亭街道招聘社区工作者真题参考答案详解.docx VIP
文档评论(0)