關於c 中的基礎鍊錶

2021-10-09 19:35:05 字數 1201 閱讀 4344

事先說明:本文不會出現完整**,還請各位親自動手

對於鍊錶的認識:

優點:快速地插入,刪除,可以構造出複雜的資料結構,動態,可以根據資料的數目開空間不會浪費

缺點:查詢慢,訪問慢,容易出現bug

最簡單的鍊錶:

1.定義:

struct node

;node *head,

*p,*r;

//定義頭指標head,尾指標r,p用於插入,查詢;

of course

可以寫得好看一些

typedef node* list
這個不是重點

2. 申請空間:

head=

new(node)

;r=head;

這裡利用new來申請空間

3.插入資料

void

insert

(int x)

這個就算是插入完成了

4.查詢

void

inquire

(int der)

if(dis!=der)dis++

;//最後乙個且沒有輸出success

if(dis==der)

printf

("success");

else

printf

("are you kidding me");

//鍊錶長度不夠

}

鍊錶長度的查詢類似,不再贅述

5.刪除

//假設我們已經找到該位置

void

delete()

這裡就體現了單向鍊錶的壞處,沒有指向字首的指標

struct node
優點:多了乙個字首,在刪除資料是更方便

缺點:在刪除的時候容易忘記字首,沒有處理字首就會出現錯誤

雙向鍊錶和單向鍊錶的建立差距不是很大,可以模仿單向鍊錶的建立方法

擴充套件一下:

十字鍊錶,用鍊錶構造數,圖等資料結構(stl也不錯 )

鍊錶基礎 c

鍊錶有動態和靜態兩種 1.動態 動態鍊錶可以帶頭結點 head 也可以不帶,動態的寫法要先申請空間 申請空間有2種寫法 1 malloc 標頭檔案stdlib.h int p int malloc sizeof int node p node malloc sizeof node 因為malloc返...

C鍊錶基礎

include struct node 建立煉表頭結點 struct node create list head void head next null printf head created ok.n return head 頭部插入鍊錶結點 int insert list head struct...

關於C 的鍊錶操作

在學c語言的時候早已把鍊錶操作爛熟於心 而在學c 的時候,學會它的鍊錶操作也是必須的。其實,他們的操作大同小異 僅僅是動態記憶體分配的命令上的區別。c語言的動態記憶體分配以庫函式的形式包含在stdlib.h的標頭檔案中 他們是malloc和free 沒錯,他們是天生的一對 而為了更加方便鍊錶這種應用...