线性表及其实现(1)

线性表及其实现(1)

  多项式的表示:

  【例】一元多项式及其运算

  一元多项式:线性表及其实现(1)

  主要运算:多项式相加、相减、相乘等

  【分析】如何表示多项式?

   多项式项数n

   各项系数ai 及指数 i

方法一:顺序存储结构直接表示

  数组各分量对应多项式各项:

  a[i]: 项xi的系数ai

线性表及其实现(1)

两个多项式相加:两个数组对应的分量相加

弊端:当表示x+2x2000 时将会浪费大量的存储空间,且效率低下。

方法二:顺序存储结构表示非零项

  每个非零项 aix涉及两个信息:系数 a和指数 

  可以将一个多项式看成是一个(ai,i) 二元组的集合。

  用结构数组表示:数组分量是由系数ai、指数i组成的结构,对应一个非零项

   线性表及其实现(1)

  相加过程:从头开始,比较两个多项式当前对应项的指数

  P1: (9,12),(15,8), (3,2)

  P2: (26,19),(-4,8),(-13,6),(82,0)

   P3: (26,19),(9,12),(11,8) ,(-13,6) ,(3,2), (82,0)

方法三:链表结构存储非零项

  链表中每个结点存储多项式中的一个非零项,

  包括系数和指数两个数据域以及一个指针域。

线性表及其实现(1)

1 typedef struct PolyNode *Polynomial;
2 typedef struct PolyNode {
3             int coef;
4             int expon;
5             Polynomial link;
6 }
7                     

线性表及其实现(1)

未完待续~~~...

下一节:什么是线性表?

                                                                                   -----yuhaow