資料結構 鍊錶

2021-10-13 23:07:39 字數 1621 閱讀 7276

#鍊錶

鍊錶是線性表的一種,已知線性表的儲存方式為兩種:順序排列和鏈式排列。

這裡說明一下什麼是鏈式

1、鏈式就是資料元素在記憶體的隨機位址,但是每個資料元素都有指向下乙個元素的號碼牌,就好比是解密類遊戲,每個資料元素都有找到下乙個元素的線索。

2、說到鍊錶,就要說明鍊錶的最小單位結點。結點就好比是資料元素,但是結點裡面不僅有資料還有下乙個結點的位址,結點分為:資料域和指標域。

資料域:自然就是存放資料元素的資料。

指標域:存放下乙個結點的位址。

優點:1、鍊錶的儲存方式是隨機儲存,不需要考慮記憶體空間的是節約還是浪費的問題。

2、鍊錶的刪除和插入相對於順序表而言在確定位置情況下時間複雜度為o(1)比順序表o(n)明顯來得高效

3、鍊錶不需要考慮資料上溢

總結:在已知資料大小的情況下,需要頻繁使用插入和刪除的適合使用鍊錶,需要頻繁使用獲取元素適合使用順序表,需要考慮節約空間的也使用順序表,在考慮未知資料元素情況下使用鍊錶。

鍊錶有單項鍊表和雙向鍊錶,這裡**舉例為單項鍊表`

struct node

;node*

creat_node

(type dat)

#建立鍊錶

struct linklist

;//建立

linklist*

creat_linklist

(void

)

#鍊錶的基礎功能

//頭插入

bool add_head

(linklist* list,type dat)

else

return true;

}//頭刪除

bool del_head

(linklist* list)

//指定位置新增

bool add_behind_index

(linklist* list,type val,

int index)

node->next = temp->next;

temp->next = node;

list->len++

;return true;

}//指定位子刪除

bool del_index

(linklist* list,

int index)

node* node = temp->next;

temp->next = node->next;

free

(node)

; list->len--

;return true;

}//查詢

intfind_val_list

(linklist* list,type val)

}return0;

}//遍歷

bool show

(linklist* list)

cout

}//銷毀

void

delet_list

(linklist* list)

free

(list)

;}

資料結構 鍊錶

鍊錶 what 就是一張鏈式儲存的表,是一種資料結構,是基礎,所以還是不要想有什麼用。具體呢?在c中就用結構體實現物件描述,然後通過函式來實現各個基本操作 c 則用類來表述,c中的結構體就可以看成c 中的類,然後通過類封裝各個操作步驟。這些操作實現後就需要 來測試,號稱demo,就是main函式裡面...

資料結構 鍊錶

鍊錶中的資料是以節點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。鍊錶的結點結構 data next data域 存放結點值的資料域 next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...

資料結構 鍊錶

一般的建立線性鍊錶有兩種 1.正序法 需要三個指標,head作為頭指標,pre作為前乙個指標,cur作為當前指標用來建立空間 2.倒序法,利用指標的插入,只需要兩個指標,不斷的往頭指標後插入新空間,不過插入的越早,離頭指標越遠,也就越後面輸出 1.線性鍊錶的建立及查詢刪除 include inclu...