毕设论文---整长数的运算-算法与数据结构课程设计.doc
上传人:论文****酱吖 上传时间:2024-09-11 格式:DOC 页数:21 大小:140KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

毕设论文---整长数的运算-算法与数据结构课程设计.doc

毕设论文---整长数的运算-算法与数据结构课程设计.doc

预览

免费试读已结束,剩余 11 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

*******************实践教学*******************兰州理工大学软件学院2013年春季学期算法与数据结构课程设计题目:长整数的运算专业班级:软件二班姓名:齐祥荣学号:12700244指导教师:王连相成绩:目录TOC\o"1-3"\h\zHYPERLINK\l"_Toc297748685"摘要PAGEREF_Toc297748685\h1HYPERLINK\l"_Toc297748686"前言PAGEREF_Toc297748686\h2HYPERLINK\l"_Toc297748687"正文PAGEREF_Toc297748687\h3HYPERLINK\l"_Toc297748688"1.采用类c语言定义相关的数据类型PAGEREF_Toc297748688\h3HYPERLINK\l"_Toc297748689"2.各模块的伪码算法PAGEREF_Toc297748689\h3HYPERLINK\l"_Toc297748690"3.函数的调用关系图PAGEREF_Toc297748690\h6HYPERLINK\l"_Toc297748691"4.调试分析PAGEREF_Toc297748691\h7HYPERLINK\l"_Toc297748692"5.测试结果PAGEREF_Toc297748692\h7HYPERLINK\l"_Toc297748693"6.源程序(带注释)PAGEREF_Toc297748693\h8HYPERLINK\l"_Toc297748694"总结PAGEREF_Toc297748694\h15HYPERLINK\l"_Toc297748695"参考文献PAGEREF_Toc297748695\h16HYPERLINK\l"_Toc297748696"致谢PAGEREF_Toc297748696\h17HYPERLINK\l"_Toc297748697"附件Ⅰ部分源程序代码PAGEREF_Toc297748697\h18摘要数据结构该设计要求学生设计程序,实现两个任意长的整数求和及差的运算问题。通过该题目的设计过程,可以加深理解线性表的逻辑结构、存储结构,掌握线性表上基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力关键词:双循环链表;插入;删除;长整数加减前言利用双向循环链表来实现对长整数的存储。每个节点只存储四位十进制数字,即不超过9999的非负整数。双向链表有头指针,它的data值存储长整数的符号,1为正,-1为负,0代表长整数为0;它的over值存储除头节点外节点的个数。其他节点的data值存储四位整数,over存储该四位整数溢出0~~9999范围的情况,一般over>0表示四位数超出9999,over<0表示四位数小于0。选择该数据结构来完成长整数的加减运算是因为要对长整数进行运算,需要对长整数进行存储,所以选择用链表对长整数存储,又由于存储的顺序是从左到右,而运算的顺序则是从右到左,这样位了操作方便选择循环链表,在运算过程中有进位和借位的操作,所以最终选择双向循环链表的数据结构。正文采用类c语言定义相关的数据类型typedefstructDoubleNode//定义链表元素voidInitNode(DLNode**head)//初始化链表intInsertNode(DLNode*head,intn,DataTypex)//向链表第N个位置插入元素Xintdigit(intn)//判断整数N有几位voidPrintNode(DLNode*head)//打印链表voidDestroyNode(DLNode**head)//销毁链表voidadd(DLNode*h1,DLNode*h2)//两数相加voidjian(DLNode*h1,DLNode*h2)//两数相减intmain()//入口函数各模块的伪码算法1.宏定义及链表定义:#defineN100typedefintDataType;typedefstructDoubleNode//定义链表元素{DataTypedata;structDoubleNode*prior;structDoubleNode*next;}DLNode;voidInitNode(DLNode**head)/