資料結構與演算法基礎 線性表(1)

2021-10-03 08:40:11 字數 1543 閱讀 7600

線性表是具有相同特性的資料元素的乙個有限序列

線性表的邏輯特徵:

例1 :一元多項式

pn(x)=p0+p1x+p2x2+p3x3+…+pnxn.

線性表p=(p0,p1,p2,p3,…,pn)

(每一項的指數 i 都隱藏其係數的pi的序號中)

如:p(x)=5+6x+2x2+3x3.

那麼我們可以用陣列來表示。

指數(下標i)

係數p[i]05

1622

33例2:稀疏多項式的運算

s(x)=1+2x1000+3x2000.

指數(下標i)

係數p[i]01

10……

10002…

…2000

3那麼如果我們還是用陣列的方式將它們儲存起來,將會造成儲存空間的浪費,該怎麼辦呢?

係數p[i]指數1

021000

32000

我們可以用這種方法來儲存資料,那麼就可以建立乙個線性表

s=((1,0),(2,1000),(3,2000)).

推廣如下:

pn(x)=p1xe1+p2xe2+p3xe3+…+pnxen.

線性表p=((p1,e1),(p2,e2),(p3,e3),…,(pn,en))

例2.1

a:5x+3x3+4x5.

b:2x2+4x3+5x4+7x6.

線性表a=((5,1),(3,3),(4,5))

線性表b=((2,2),(4,3),(5,4),(7,6))

我們如何實現多項式a和b的相加呢?

乙個多項式已遍歷完畢時,將另乙個多項式的剩餘項依次複製到c中即可

這裡我們又遇到乙個問題,陣列c多大才合適呢?

由此我們可以看到順序儲存結構存在的問題

接下來,鏈式儲存結構閃亮登場。

例3:圖書資訊管理系統

需要的功能:

(1)查詢 (2)插入 (3)刪除 (4)修改 (5)排序 (6)計數

圖書錶可抽象為線性表。那我們怎麼儲存它呢?

順序儲存:

鏈式儲存:

總結

資料結構與演算法筆記(1) 線性表

時間複雜度與空間複雜度 時間複雜度即執行時間的需求,空間複雜度即對空間的需求線性表 線性表記為 a1,a2,ai 1,ai,ai 1,an 則ai 1為ai的直接前驅元素,ai 1為ai的直接後繼元素,存在多個元素的前提下,第乙個元素無前驅,最後乙個元素無後繼,其他元素都有且只有乙個前驅和乙個後繼。...

資料結構線性表1

include include include struct arr 定義了乙個資料型別,該資料型別的名字是struct arr void init arr struct arr parr,int length bool insert arr struct arr parr,int pos,int ...

資料結構 線性表1

一 線性表 定義 由零個或多個資料元素組成的有限序列。強調 1 線性表是乙個序列,也就是說元素之間是有先來後到的 2 若元素存在多個,則第乙個元素無前驅,最後乙個元素無後繼,其他元素都有且只有乙個前驅和後繼 3 線性表是有限的,即他能夠處理的元素是有限的 舉列 請問公司的組織架構是否屬於線性關係?答...