实验名称 | 一元多项式乘法 | ||||
姓名 | 学号 | 日期 | 2024年3月15日 | ||
实验内容 | 设计实现一个稀疏多项式计算器 实验要求:
| ||||
实验目的 | 学习线性表 | ||||
实验步骤 |
![]()
创建:<1>无法成功创建时需进行一定的报错提醒并退出程序 <2>起始情况需考虑head->next和current均指向NULL。 定位:找到与data数据相同的节点,返回该节点指针同时更改current ![]() | ||||
实验步骤 | ![]() 遍历:只需要输出数和数的长度即可。 ![]() 插入:<1>注意可能的报错 <2>用定位找到目标节点,考虑头结点和尾节点情况及时改变指针,添加完之后进行长度的增加。 删除:<1>注意清空内存 <2>注意改变长度 归并:<1>循环用来先将其中一部分的数来放到c中 <2>再查看哪个链表还剩下数据没有连完,连上即可。
<1>创建链表,同时每个链表储存两个数据。 <2>输入格式为先输入多项式项数,再按指数从大到小顺序输入系数和指数,同时注意指针指向NULL。 3.(2分)实现两个多项式相加并输出结果。 先实现链表中插入数据: <1>需要考虑指数相同情况,直接进行系数加减即可,同时如果加完后系数为0进行清除 <2>再实现按顺序将该数加入到多项式中 <3>最后该数可能添加到最后 再实现添加就只需进行多个数据的插入即可。 4.实现两个多项式相乘并输出结果。 进行两个循环,第一层循环对第二个多项式每个数进行遍历,第二层循环对第一个多项式中每个数进行遍历,这样得到两个多项式中每个数相乘的结果,通过添加添加到新的链表即可完成相乘。 实验结果: | ||||
实验总结 | 本次实验我的收获有三点。首先是知识的学习,通过本次实验巩固了理论课线性表的知识,尤其深化理解了“带头节点的线性链表”概念,也对线性链表的结构模式有了进一步的了解。其次,本次实验强化了我的代码能力,通过一元多项式的案例,让线性链表的知识变成了我代码的经验,我学会了线性链表这一数据结构类型,同时也得到了相应代码能力的提升。最后,在本次实验,我也体会到了思路的重要性,思考需要全面,例如在实现乘法的过程中,起初认为乘法可能会毁坏原本的多项式,因此设置了一个复制多项式的函数,但事实上只需要创造出一个新的多项式链表即可,导致最后反而画蛇添足了。从而,意识到了思考的全面性。 |