線性表(list):具有相同資料型別零個或多個資料元素的有限序列。除第乙個元素外,每個元素有且僅有乙個直接前驅。除最後乙個元素外,每個元素有且僅有乙個直接後繼。
線性表是一種邏輯結構,表示元素之間一對一的相鄰關係。順序表和煉表是指儲存結構,兩者屬於不同層面的概念,因此不要將其混淆。
initlist(&l ): 初始化表。構造乙個空的線性表。(initialize初始化)
length(l ):求表長。返回線性表l 的長度,即l 中資料元素的個數。
locateelem(l,e ): 按值查詢操作。在表l 中查詢具有給定關鍵宇值的元素。(element元素)
getelem(l,i ):按位查詢操作。獲取表l 中第i 個位置的元素的值。
listinsert(&l,i,e ):插入操作。在表l 中的第i 個位置上插入指定元素e 。
listdelete (&l,i,&e):刪除操作。刪除表l 中第i 個位置的元素,並用e 返回刪除元素的值。
printlist(l):輸出操作。按前後ji民序輸出線性表l 的所有元素值。
empty(l):判空操作。若l 為空表, 則返回tru e ,否則返回false 。
destroylist ( &l ):銷毀操作。銷毀線性表,井釋放線性表l 所占用的記憶體空間。
線性表順序儲存結構,指用一段位址連續的儲存單元依次儲存線性表的資料元素,邏輯上相鄰的兩個元素在物理位置上也相鄰。
順序表的定義:
//靜態分配
#define maxsize 50 //線性表最大長度
typedef structsqlist;
//動態分配
#define initsize 100 //表長度的初始定義
typedef structseqlist;
seqlist l;
l.data=(elementype*)malloc(sizeof(elemtype)*initsize); //初始動態分配
順序表特點:
又稱單鏈表,通過一組任意的儲存單元來儲存線性表中的資料元素。為了建立資料元素之間的線性關係,對每個鍊錶結點, 除存放元素自身的資訊以外,還需要存放乙個指向其後繼的指標。利用單鏈表可以解決順序表需要大量連續儲存單元的缺點,但單鏈表附加指標域,也存在浪費儲存空間的缺點。由於單鏈表的元素離散地分布在儲存空間中,所以單鏈表是非隨機訪問的儲存結構,即不能直接找到表中某個特定的結點。查詢某個特定的結點時, 需要從表頭開始遍歷,依次查詢。
通常用頭指標來表示乙個單鏈表,頭指標為null時表示是乙個空表。為操作方便單鏈表前附加乙個節點,稱為頭結點。頭結點的資料域沒有任何資訊,頭結點的指標域指向線性表的第乙個元素結點。
頭結點和頭指標 :不論帶不帶頭結點,頭指標始終指向鍊錶的第乙個結點,而頭結點是帶帶頭結點鍊錶的第乙個結點。
引入頭結點的優點:
在單鏈表的結點中增加了乙個指向其前驅的prior 指標,因此雙鏈表中的按值查詢和按位查詢的操作與單鏈表的相同。但雙鏈表在插入和刪除操作的實現上,與單鏈表有著較大的不同。
這是因為「鏈」變化時也需要對prior 指標做出修改,其關鍵是保證在修改的過程中不斷鏈。此外,雙鏈表可以很方便地找到其前驅結點,因此,插入、刪除操作的時間複雜度僅為o( 1 )。
靜態鍊錶借助陣列來描述線性表的鏈式儲存結構,結點有資料域data也有指標域next,這裡的指標是結點的相對位址(陣列下標),又稱游標。和順序表一樣,靜態鍊錶也要預先分配一塊連續的記憶體空間。當next=-1時作為結束標誌。
typedef structslinklist[maxsize];
1.訪問(讀寫)方式:2.邏輯結構與物理結構:3.查詢、插入和刪除操作: 資料結構 第二天 線性表(一)
線性表 0個或多個資料元素的有限序列,記 長度為n,為0記為空表 線性表應該具有的操作 adt list data 每個元素型別為datatype,除第乙個元素外,每乙個元素有且只有乙個直接前驅元素,除最後乙個元素外有且只有乙個直接後繼元素。operation initlist l 初始化操作,建立...
資料結構第二天
學習資料結構第二天,有點學習心得,所以記錄一下。目前才接觸線性結構的順序表和單鏈表的 說說它們的異同吧。毫無疑問,順序表和單鏈表的共同點就是線性,即元素呈線性排列,單一前繼和單一後繼。並且表示形式都使用打頭的元素位址,有點順藤摸瓜的感覺。不同點就是順序表的物理結構也是順序的,實際上就是位址 而已,好...
考研第二天 線性代數
一 線性代數 one 行列式按行 列 展開 術語 余子式 代數余子式 引理 如果乙個行列式的第i行只有第j列元素aij不為0,其他元素都為 那麼該行列式等於aij與第 i,j 元的代數余子式之積。定理 行列式等於任意一行或一列每個元素與其對應代數余子式乘積之和。該定理叫做行列式按行 列 展開法則。定...