欢迎来到天天文库
浏览记录
ID:6636505
大小:145.50 KB
页数:8页
时间:2018-01-20
《数据结构课程实习报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
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
此文档下载收益归作者所有