資料結構筆記(三)
線性結構
——線性表示及其實現
一.多項式的表示(項數n和各項係數 ,指數i)
法一:順序儲存結構直接表示——陣列各分量對應多項式各項,a[i]: 項的係數
eg:
下標i | 0 1 2 3 4 5 ....... | ||||||
a[i] | 1 | 0 | -3 | 0 | 0 | 4 |
法二:順序儲存結構表示非零項
下標i | 0 1 2 ...... | |||
係數 | 4 | -3 | 1 | |
指數i | 5 | 2 | 0 |
* 按指數大小有序儲存
法三:連結串列結構儲存非零項
係數 | 指數 | 指標(link) |
eg:
二.什麼是線性表?
由同類型資料元素構成的有序序列的線性結構
1. 抽象資料型別描述—— 型別名稱:線性表(List )
資料物件集:線性表是n個元素構成的有序序列
操作集:,整數i表示位置,元素,基本操作主要有:
1.ListMakeEmpty():初始化一個空線性表L
2.ElementTyp FindKth(int K,list L):根據位序 K,返回相應元素
3. int Find(ElementType X,List L): 線上性表L中查詢X第一次出現的位置
4.Void Insert(Element Type X,int i,List L):在位序i前 插入一個新元素X
2. 順序儲存實現:利用陣列的連續儲存空間順序存放線性表的各元素
訪問下標為i的元素:L.Data[i] 或者 Ptrl->Data[i] 線性表長度:L.Last+1 或者 Ptrl->Last+1
3. 鏈式儲存實現:不要求邏輯上相鄰的兩個元素物理上也相鄰,通過鏈建立起資料元素之間的邏輯關係。
3. 廣義表
廣義表示線性表的推廣,線性表元素為單元素,對於廣義表,元素也可以是廣義表
多重連結串列:節點可能隸屬於多個鏈
eg: 稀疏矩陣的連結串列表示 :只儲存非零元素項,每個結點通過兩個指標域把同行同列串起來