1. 程式人生 > >線性表及其實現(1)

線性表及其實現(1)

結構 span 1.5 logs cnblogs 一元多項式 lin wid -s

線性表及其實現(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

線性表及其實現(1)