没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一元多项式加减法运算
1. 题目
实现一元多项式的加减法运算,要求多项式采用链表存储结构。
2. 测试用例
(1)a(x)=3x^5+7x^3+1
b(x)=1x^5-x^3+2x+8
加法运算结果:
c(x)=4x^5+6x^3+2x^1+1
(2)a(x)= 0
b(x)=1x^1
加法运算结果:
c(x)=1x^1
(3)a(x)= 3x^5+7x^3+1
b(x)= 3x^5+7x^3+1
减法运算结果:
c(x)=0
(4)a(x)=0
b(x)=1
加法运算结果:
c(x)=1
(5)a(x)=1x^1+3x^2+9x^1+8
b(x)=2x^5+9+1x^1
减法运算结果:
c(x)=-2x^5+3x^2+9x^1-1
3 算法描述
注:这里建立的链表中的头结点是不保存数据的
(1) 一元多项式的存储
采用链表结构存储,设置两个数据项:指数和系数,还有一个指针型,
用于链接的变量
(2) 一元多项式的建立
先输入好应该输入的项数 n,然后开始建立链表,具体操作为:分配
三个指针变量 p1,p2,p3 先指向新建立的头结点,然后 p1 指向新建
立的结点,填完数据后,让 p2 指向的结点的后继指向 p1,p2 指向
与 p1 相同的结点,然后计数器+1,重复上述步骤,直到计数器的
值与 n 相同,最后让 p2 的后继指空
(3) 一元多项式的规范
考虑到用户输入时可能会输入相同指数的不同项,所以设计了一个让
多项式中相同指数合并的算法。具体思路如下:
1) 使 p1,p3 三个指针变量指向头结点的下一个结点,p2 指向 p3
的下一个结点
2) 当 p1 的后继不为空时,使 p2 开始遍历链表当 p2 所指的结点
的指数与 p3 所指的指数相同时,系数相加,删除 p2 所指的结点,
否则执行 4)
3) 使 p3 指向下一个结点,p1 指向 p3 所指结点,p2 指向 p3 的
下一个结点
4) 当 p1 的后继不为空时,使 p1 指向 p2,p2 指向 p1 的下一个
结点
5) 当 p3 的后继为空时结束算法,否则执行 2)
(4) 一元多项式的输出
遍历链表,依次输出结点的指数和系数
在输出的时候做了规范(条件判断):1)当指数为零时,只输出系
数
2)当系数为零时,输出零
3)第一项前面不带符号
4)加减运算的结果为零输出
零
(5)一元多项式的加减
基本思路:
1)先判断是做加法还是减法,如果是减法的话,将第二个链表中每个结点的
系数变成相反数(这样可以实现加减法的一体);
2)然后遍历第二个一元多项式,找出与第一个多项式中第 i 项指数相同的项,
系数相加,删除该结点;然后继续寻找与第 i+1 项相同指数的项,直到遍历完
第一个多项式;
3)之后再把第二个多项式中与第一个多项式指数不同的结点添加至第一个链
表中
(6)链表的排序
剩余11页未读,继续阅读
资源评论
国家一级假勤奋研究牲
- 粉丝: 105
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功