线性表及其实现(1)
多项式的表示:
【例】一元多项式及其运算
一元多项式:
主要运算:多项式相加、相减、相乘等。
【分析】如何表示多项式?
多项式项数n
各项系数ai 及指数 i
方法一:顺序存储结构直接表示
数组各分量对应多项式各项:
a[i]: 项xi的系数ai
两个多项式相加:两个数组对应的分量相加
弊端:当表示x+2x2000 时将会浪费大量的存储空间,且效率低下。
方法二:顺序存储结构表示非零项
每个非零项 aixi 涉及两个信息:系数 ai 和指数 i
可以将一个多项式看成是一个(ai,i) 二元组的集合。
用结构数组表示:数组分量是由系数ai、指数i组成的结构,对应一个非零项
相加过程:从头开始,比较两个多项式当前对应项的指数
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 typedef struct PolyNode *Polynomial; 2 typedef struct PolyNode { 3 int coef; 4 int expon; 5 Polynomial link; 6 } 7
未完待续~~~...
下一节:什么是线性表?
-----yuhaow