实验报告
课程名称____数据结构上机实验__________实验项目______线性表的应用____________实验仪器________PC机___________________
系别_____电子信息与通信学院___
专业________
___
班级学号______
__
学生姓名______
___________
实验日期_______________________
成绩_______________________
指导教师_______________________
f实验一线性表的应用
1实验目的:掌握线性链表的存储、运算及应用。利用链表实现一元多项式计算。
2实验内容:1编写函数,实现用链表结构建立多项式;2编写函数,实现多项式的加法运算;3编写函数,实现多项式的显示;4测试:编写主函数,它定义并建立两个多项式,显示两个多项式,然后将它们相加并显示结果。变换测试用的多项式,检查程序的执行结果。
选做内容:修改程序,选择实现以下功能:5多项式求值:编写一个函数,根据给定的x值计算并返回多项式fx的值。测试该函数(从终端输入一个x的值,调用该函数并显示返回结果)。6多项式相减:编写一个函数,求两个多项式相减的多项式。7多项式相乘:编写一个函数,求两个多项式的乘积多项式。
3算法说明:1多项式的建立、显示和相加算法见讲义。可修改显示函数,使输出的多项式更符合表达规范。2多项式减法:同次项的系数相减(缺项的系数是0)。
f例如ax5x22x3,bx4x33x,则axbx4x35x2x3。提示:axbxaxbx。
3多项式乘法:两个多项式的相乘是“系数相乘,指
数相加”。算法思想是用一个多项式中的各项分别与
另一个多项式相乘,形成多个多项式,再将它们累加在一起。例如,ax5x22x3,bx4x33x,
则
axbx
4x35x22x33x5x22x3
20x58x412x3
15x36x29x
20x58x427x36x29x。
4实验步骤:
根据实验报告的要求,我对文件夹里的C文件进行了丰
富和修改,步骤如下:
链表结构建立多项式:
typedefstructpoly
ode
floatcoef
系数
i
texp
指数
structpoly
ode
ext下一结点指针
PNode编写函数,实现多项式的加法运算;
PNodePolyAddPNodef1PNodef2实现加法功能。实现两多项式(头指针分别为f1和f2)相加,返回和
f多项式f3f1f2。
PNodepaf1
extpbf2
extpcf3q
i
texp
floatcoeff3PNodemallocsizeofPNodef3exp1对头指针初始化
建立头指针
f3
extf3pcf3将pc指向头指针whilepaexp1pbexp1出循环
返回头指针时,跳
ifpaexppbexp
exppaexp
coefpacoef
papa
ext
elseifpaexppbexp
exppbexp
coefpbcoef
pbpb
ext
felse
exppaexpcoefpar