資料結構學習 線性表 鍊錶

2021-07-11 22:20:45 字數 1363 閱讀 1799

一、線性表

定義;有同型別資料元素構成有序序列的線性結構

基本操作

typedef

intposition;

typedef

struct

lnode *list;

struct

lnode ;

/* 初始化 */

list makeempty()

/* 查詢 */

#define error -1

position find( list l, elementtype x )

/* 插入 */

bool

insert( list l, elementtype x, position p ) 

if( p<0 || p>l->last+1 )  

for( i=l->last; i>=p; i-- )

l->data[i+1] = l->data[i]; 

/* 將位置p及以後的元素順序向後移動 */

l->data[p] = x;  

/* 新元素插入 */

l->last++;       

/* last仍指向最後元素 */

return

true

; } 

/* 刪除 */

bool

delete( list l, position p )

for( i=p+1; i<=l->last; i++ )

l->data[i-1] = l->data[i]; 

/* 將位置p+1及以後的元素順序向前移動 */

l->last--; 

/* last仍指向最後元素 */

return

true

;   

} 二、鍊錶

鍊錶的一些基本操作

typedef

struct

lnode *ptrtolnode;

struct

lnode ;

typedef

ptrtolnode position;

typedef

ptrtolnode list;

/* 查詢 */

#define error null

position find( list l, elementtype x )

/* 帶頭結點的插入 */

bool

insert( list l, elementtype x, position p )

else

}/* 帶頭結點的刪除 */

bool

delete( list l, position p )

else

}

資料結構學習 線性表

線性表一般分為順序結構和鏈式結構。順序表裡面元素的位址是連續的,如陣列 鍊錶裡面節點的位址不是連續的,是通過指標連起來的,如單鏈表 順序結構 優點 易於查詢,索引快 list n 這樣的操作,o 1 複雜度。缺點 擴充套件性弱,不易刪除 插入,這兩項操作均是o n 的時間複雜度 鍊錶結構 優點 擴充...

資料結構學習 線性表

考試前複習下資料結構,把一些知識點整理在這!主要參考了殷人昆主編的 資料結構 用物件導向方法與c 語言描述 這本書,以及中山大學劉聰老師的課件內容!鍊錶雙鏈表 線性表 linear list 是由n n 0 個資料元素 結點 a 0 a 1 a 2 a n 1 組成的有限序列。維基百科 線性表是乙個...

資料結構學習 線性表

鏈式儲存用指標表示邏輯結構,可以很方便的表示各種邏輯結構。順序儲存結構中,插入和刪除結點需要大量的移動元素,效率很低。順序儲存結構既可以順序訪問也可以隨機訪問,而鏈式結構只可以順序訪問。對n個元素進行排序的時間複雜最快也要o n 初始有序 通常是o nlog2n 或o n 2 單鏈表只能順序查詢插入...