线性表及其实现
【例】一元多项式及其运算
- 一元多项式:f(x)=anxn+an-1xn-1+…+a2x2+a1x+ a0
- 主要运算:多项式相加、相减、相乘等
【分析】如何表示多项式?
- 多项式的关键数据:
- 多项式项数n
- 各项系数Ai及指数i
方法1:顺序存储结构直接表示
- 数组各分量对应多项式各项:a[i]:项x^i的系数Ai
- 例如:f(x)=4x^5-3x^2+1
- 表示成:a[i]
1 0 -3 0 0 4 - 两个多项式相加:两个数组对应分量相加
- 问题:x+x^2000?
方法2:顺序存储结构表示非零项
- 每个非零项涉及两个信息:系数Ai和指数i,可以将一个多项式看成是一个(Ai,i)二元组的集合。
- 用结构数组表示:数组分量是由系数Ai、指数i组成的结构,对应一个非零项
- 例如:P1(x)=9x^12+15x^8+3x^2
-
下标i 0 1 2 系数Ai 9 15 3 指数i 12 8 2 -
方法3:链表结构存储非零项
- 链表中每个节点存储多项式中的一个非零项,包括系数和指数两个数据域和一个指针域