数据结构课程实习报告

数据结构课程实习报告

ID:6636505

大小:145.50 KB

页数:8页

时间:2018-01-20

数据结构课程实习报告_第1页
数据结构课程实习报告_第2页
数据结构课程实习报告_第3页
数据结构课程实习报告_第4页
数据结构课程实习报告_第5页
资源描述:

《数据结构课程实习报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数据结构课程实习报告姓名:李佳蓉学号:班级:-21学院:信息工程学院专业:地理信息系统实习题目:大数的阶乘【问题描述】 大数运算——计算n的阶乘。 【求解思路】对数据的操作及其实现,该题中两个乘数的运算要考虑到:乘数的各位数都要与被乘数进行乘法运算,乘法过程中的进位问题及其实现,因每个元素或节点最多存储数据的3位数值,故当元素或节点中的数值大于999,需向前一个元素或节点进位。综上所述:本题可采用链式存储结构实现——普通单链表,其长度可以扩充,每一个数据元素占用一个结点,一个结点由两个域组成,一个域存放数据元素,其数据类型由问题决定,本体数据类型为实型,一个域存放

2、指向该链表中下一个结点的指针,给出下一个结点的开始存储地址。需要注意的是:每个节点存储三位数据,进行运算时,从头节点开始乘,所得数据暂存在节点data域中,如果它大于999,则向前进位,进位为data/1000,如果前位为空,则新建一个节点,新建节点的data为该data/1000,只要某一位有进位,则从该点依次向检查,如果因加了进位后使自己data大于999,则继续向前进位,直到每位节点数据都小于999,输出结果时:如果节点数据域的值不足三位,应注意在前补0以补足三位。设计一个单链表类,首先定义链表结点类,然后再定义链表类。链表结点类中包括数据、前驱指针、后驱指

3、针以及构造函数。链表类类中包含的成员函数有构造函数Chain(),析取函数~Chain(),求长度函数Length(),判断是否为空函数IsEmpty(),查找结点函数Search(),定位函数Locate(),插入函数Insert(),删除函数Delete(),搜寻取值函数Find(),改变数据函数Change(),输出链表函数OutPut()。每个节点存储三位数据,进行运算时,从头节点开始乘,所得数据暂存在节点data域中,如果它大于999,则向前进位,进位为data/1000,如果前位为空,则新建一个节点,新建节点的data为该data/1000,只要某一位

4、有进位,则从该点依次向检查,如果因加了进位后使自己data大于999,则继续向前进位,直到每位节点数据都小于999,输出结果时:如果节点数据域的值不足三位,应注意在前补0以补足三位。通过length函数显示结点的个数。另外,在输出链表时,需要逆序输出,因此将每个结点的数据放在数组的元素中,通过for循环输出数组达到显示结果的目的。【采用的数据结构】我所采用的是单链表。进行运算时,从头节点开始乘,所得数据暂存在节点data域中,如果它大于999,则向前进位,进位为data/1000,如果前位为空,则新建一个节点,新建节点的data为该data/1000,只要某一位有

5、进位,则从该点依次向检查,如果因加了进位后使自己data大于999,则继续向前进位,直到每位节点数据都小于999。输出结果时,如果节点数据域的值不足三位,应在前补0以补足三位。在输出链表时,将每个结点的数据放在数组的元素中,通过for循环输出数组达到显示结果的目的。【程序实现说明】本程序主要使用单链表。链表每个节点存储三位数据,进行运算时,从头节点开始乘,所得数据暂存在节点data域中,如果它大于999,则向前进位,进位为data/1000,如果前位为空,则新建一个节点,新建节点的data为该data/1000,只要某一位有进位,则从该点依次向检查,如果因加了进位

6、后使自己data大于999,则继续向前进位,直到每位节点数据都小于999。输出结果时,如果节点数据域的值不足三位,应在前补0以补足三位。最后通过调用输出函数实现链表的逆序输出,从而实现结果的显示。用户需要按照提示输入阶乘的数字,程序会自动显示出结点数length和阶乘的结果。【程序清单】#includeusingnamespacestd;templateclassChain;//Chain类的前视声明templateclassChainNode//结点类的声明{friendChain;//声明Chain为友

7、元类private:Tdata;ChainNode*link;};templateclassChain//链表类声明{public:Chain(){first=0;};~Chain();boolIsEmpty()const{returnfirst==0;}intLength()const;boolFind(intk,T&x);Chain&Insert(intk,constT&x);Chain&Change(intk,Tx);Chain&Delete(intk,T&x);Chain&Search(constT&x)con

8、st;in

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

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

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