燕山大学里仁秋基础算法实验.doc

燕山大学里仁秋基础算法实验.doc

ID:56236105

大小:121.50 KB

页数:18页

时间:2020-03-23

燕山大学里仁秋基础算法实验.doc_第1页
燕山大学里仁秋基础算法实验.doc_第2页
燕山大学里仁秋基础算法实验.doc_第3页
燕山大学里仁秋基础算法实验.doc_第4页
燕山大学里仁秋基础算法实验.doc_第5页
资源描述:

《燕山大学里仁秋基础算法实验.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、燕山大学里仁秋基础算法实验计算机基础算法实验报告班级:学号:姓名:指导教师:完成日期:一、两个长整数相加1•实验任务用链表(单链表或双向链表)实现任意位数的整数相加。2.设计思想首先创建逆序链表1,即将输入的数字逆序进入链表,再创建链表2,将输入的数字逆序进入链表。此时两个链表的头节点的下一个节点均对应为数字的个位数,再对两个链表进行相加操作,分别从两个链表的头节点的下一节点进行两两相加,相加结果临时存入num变量,并且放置報型变量carryfig存进位,进行num对10求余,余数存入节点p,carry为整型

2、变量,对carry进行相加结果/10操作,若相加结果小于10,carry=0,若结果人于10,carry二1。将相加结果存入新链表的头节点的下一节点,循坏两个链表,直至两个链表循坏结束。此时新链表即为相加后的链表,理论可以实现任意位数的正整数相加。3.主要变量说明ADTLNode{数据元索:此单向链表小的所有元素类型为字符型的数字字符数据关系:链表屮数据元索Z间是线性关系。基本操作:LNode*creat(void)操作结果:创建一个单向链表,并且逆序输入链表元索基本操作:voidprint(LNode*he

3、ad)操作结果:输出单向链表基木操作:LNode*Creat(LNode*headl,LNode*heac!2)操作结果:对两个链表进彳亍相加操作,建立相加后的链表}ADTIN)de2.算法描述定义三个指针变量headlhead2head3屏幕输出:pleaseputanumber输入任意位数数字,调用LNocIe*creat(void),建立链表headl屏幕输出:pleaseputanotheronel输入任意位数数字,调用LNode*creat(void),建立链表head2调用函数Croat(head

4、l,head2)对链表hoadl,head2进彳」湘加操作,建立新链表head3调用函数print(headB)输出链表head3屏幕输出:"heads"程序结束3.程序结构voidni3in()c*E:VC6CNMyProjectsziangjiaDebugziangjia・exepleaseputanumber123456789123456789pleaseputanotherone123456789123456789246913578246913578Pressanykeytocontinu

5、e*headl,LNode*head2)4.调试情况(1)刚开始的时候曾忽略一些变量的“&”使调试程序时花费了不少时间。今后应该重视参数的变量和赋值属性的区分和标识。(2)木程序的模块的划分的比较合理,尽可能的将指针的操作封装到了模块的里血,使调试的时候比较顺利。(3)开始设计的时候没有注意到当两个数都加完了,但还是进位的情况,经过讨论在讪订e循环的外血又加上了一条语句,使程序更加准却,并使其的健壮性提到了提高。2.运行结果⑴123456789123456789+12345678912345678929999

6、95+5c*E:VC6CMMyProjectsxiangjiaDebugxiangjia.exe*pleaseputanumber5pleaseputanotherone9999951000000Pressanykeytocontinue5+9999952.设计技巧采川由表尾到表头逆向建立链表的方法。3.心得体会通过对实验的思考以及编译过程,我可以对课木所学知识进行熟练运川,包括单链表的建立,正序逆序的分别,单链表的输出,两个单链表的操作,相加以及进位的算法思想的建立以及正确编译。3程序清单:^i

7、nclude#include#defineNULL0tystructLNode{intdata;structLNode*next;}LNode;charn;LNode*creat(void){LNode*head;LNode*p,*q;head=(LNode*)malloc(sizeof(LNode));head->data=O;q二NULL;while((n=getchar())!二'')if(n>=48&&n<=57){p二(LNode*)malloc(sizeo

8、f(LNode));p->datazzn-48;p->ncxt=q;q二P;}hcad->next二p;return(head);}voidprint(LNocIe*head){LNode*r;printf(''Thenumis:");r二head;if(head!二NULL)do{printf(z/%d/z,r-〉next->data);r=r-〉next;while(r-〉next!二NUL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。