-「一,線性結構
1.順序儲存結構直接表示 多項式。
1).使用陣列來表示多項式。(用陣列下標來表示指數,值來表示係數)
可以表示成:
2).使用結構陣列來表示。(把係數和指數看成乙個二元組集合)
相加時。比較指數,相同係數相加,不同,大的輸出
3).鍊錶儲存非零項。
相加時同2)
表示時,有三個域:係數和指數兩個資料域以及乙個指標域
例如:
可以表示成:
2.線性表:由同型別的資料元素構成的有序序列的線性結構
元素個數稱為線性表的長度
沒有元素時,稱為空表
標的起始位置稱為表頭,標結束位置稱為表尾
(1).初始化(建立空的資料表)
list makeempty()
(2).查詢:
int find(elementtype x, list ptrl)
(3).插入:
void
insert(elementtype
x, itn i, list
prtl)
if(i<1 ||i>ptrl->last+2)
for(j=ptrl->last; j>=i-1; j--)
prtl->data[j+1]=ptrl->data[j];
ptrl->data[i-1]=x;
ptrl->last++;
return;
}
(4).刪除:
void delete(int i, list ptrl)
for(j=i; j<=ptrl->last; j++)
ptrl->data[j-1]=ptrl->data[j];
ptrl->last--;
return;
}
2.線性表的鏈式儲存
定義:
typedef
struct lnode *list;
struct lnode;
struct lnode l;
list ptrl;
(1).求表長:
int length(list ptrl)
return j;
}
(2).查詢:
//按序號查詢
list findkth(int k, list prtl)
if(i==k) return p;
else
return
null;
}
//按值查詢
list find (elementtype x, list ptrl)
(3)插入:
list insert(elementtype x, int i, list ptrl)
if(p==
null)else
}
(5).刪除:
list delete( int i, list ptrl )
p = findkth( i-
1, ptrl );
if ( p ==
null ) else
if ( p->next ==
null ) else
}
2.廣義表:比如二元多項式
線性表的一種推廣。
3.多重鍊錶:鍊錶中的節點可能同時隸屬於多個鏈
多重鍊錶中的節點的指標域會有多個
包含兩個指標域的鍊錶不一定是多重鍊錶,例如雙向鍊錶就不是多重鍊錶:可以用來對數,圖,這樣的相對複雜的資料結構
比如說對稀疏矩陣的儲存:
資料結構與演算法 線性表
概念 一種資料結構,每個結點最多只有乙個前驅結點和乙個後繼結點 類別 順序表 定長 鍊錶 變長 棧 棧頂刪除 彈棧 棧頂插入 壓棧 後進先出 lifo 佇列 隊頭刪除 出隊 隊尾插入 入隊 先進先出 fifo 線性表的抽象資料型別定義 c 1.template2.class list 棧的抽象資料型...
資料結構與演算法 線性表
n維向量 x1,x2,xn 是乙個長度為n的線性表 英文小寫字母表 a,b,c,z 是乙個長度為26的線性表 一年中的四個季節 春,夏,秋,冬 是乙個長度為4的線性表 矩陣是乙個比較複雜的線性表 學生情況登記表是乙個複雜的線性表 由若干資料項組成的資料元素稱為記錄 由多個記錄構成的線性表又稱為檔案 ...
資料結構與演算法 線性表
1.線性表 1.1 線性表的定義和基本運算 定義 線性表是具有相同資料型別的n個資料元素的有限序列。除表頭元素外,每個元素有且僅有乙個直接前驅 除表尾元素外,每個元素有且僅有乙個直接後繼。特點 個數有限 具有邏輯上的順序性 資料元素型別都相同。基本操作 初始化 求表長 按值查詢 按位查詢 插入 刪除...