全球旧事资料 分类
实习1、一元稀疏多项式计算器
一、需求分析
1问题描述设计一个一元稀疏多项式简单计算器。
2基本要求一元稀疏多项式简单计算器的基本功能是:
1输入并建立多项式。2输出多项式,输出形式为整数序列:
c1e1c2e2c
e
,其中
是多项式的项数,ciei分别是第i项的系数和指数,序列按指数降序排列。3多项式a和b想加,建立多项式ab。4多项式a和b想减,建立多项式ab。3测试数据12x5x831x1175x811x931x1111x92x726x3x44x212x96x354x2x278x1578x1512x912x3x31xx2x3x4x5x3x41xx2x54xx3xx305xx100x100x200x2x100x2006xx2x30xx2x37互换测试数据的前后两个多项式。4实现提示
用带表头结点的单链表存储多项式。
二、概要设计
为实现上述程序功能,应用带头结点的单链表存储多项式。为此需要一个抽象数据类型:一元多项式。
1抽象数据类型一元多项式定义为:ATDPloy
omial
数据对象:Daiai∈Termseti123,mm≥0Termset中的每个元素包含一个表示系数的实数和表示指数的整数
数据关系:R1ai1aiai1ai∈D且ai1中的指数ai中的指数的值,i123
基本操作:I
sertph初始条件:h已存在。操作结果:插入p项。CreateLi
klistheadm操作结果:建立一个头指针为head、项数为m的一元多项式。DestroyLi
klistp初始条件:一元多项式p已存在。操作结果:销毁一元多项式p。Pri
tLi
klistP
f初始条件:一元多项式p已存在。操作结果:输出一元多项式p。Compareab初始条件:项ab已存在。操作结果:比较ab中x的指数的大小。AddLi
klistpapb初始条件:一元多项式papb已存在。操作结果:完成一元多项式papb的相加运算。Subtractio
Li
klistSaSb初始条件:一元多项式SaSb已存在。操作结果:完成一元多项式SaSb的相减运算。ATDPloy
omial
三、详细设计(源代码)
(使用C语言)i
cludestdiohi
cludemallochdefi
emaxle
10defi
elarge999
typedefstructLi
klistomial
floatcoefi
texp
structLi
klistomial
extLi
klistomialLi
klist结点类型,指针类型
voidI
sertLi
klistpLi
klisthh已存在插入p项
ifpcoef0freep系数为0的话释放结点
else
Li
klistq1q2q1hq2h
extwhileq2pexp
q2exp
查找插入位置
q1q2q2q2
extifq2pexp
q2exp
将指数相同相合并q2coefpcoef
ffreepifq2coef系数为0的话释放结点
q1
extq2
extfreeq2else指数为新时将结点插入p
extq2q1
extp
Li
klistCreateLi
klistLi
klistheadi
tm建立一个r
好听全球资料 返回顶部