線性表是具有相同特性的資料元素的乙個有限序列。
線性表的邏輯特徵:
例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 線性表是有限的,即他能夠處理的元素是有限的 舉列 請問公司的組織架構是否屬於線性關係?答...