C語言小結之鍊錶

2021-09-19 03:03:46 字數 1564 閱讀 2757

鍊錶的學習

在資料結構中有一種結構叫做線性表,線性表是儲存乙個線性資料的**,本文就簡要的介紹一下線性表的構成。

一、線性表的定義

定義:由同種型別資料元素構成的有序數列的線性結構

長度、表頭、表尾

list

線性表的形式有兩種:一種是陣列構成的表,另一種是鍊錶。

所謂陣列形成的表就是乙個陣列,如下定義所示

typedef structlist

從上面可以看出乙個線性表型別要包括一組資料和資料的最末尾。

這樣有乙個弊端,就是在對線性表插入時需要對其後面的所有元素挪動位置。

故我們採取另一種方式,也就是鍊錶的結構

結構如下:

typedef struct nodelist;

二、鍊錶基本功能實現

(1)求表的長度

void length(list *ptrl)

return j;

}

(2)查詢

按序號查詢

list *findkth(int k,list *ptrl)

if(i == k)

return p;

else

return null;

}

按值查詢

list *find(element data,list *ptrl)

//找不到就是null

return p;

}

(3)插入元素

在鍊錶中某個位置插入某個元素

所以入口引數為元素內容、位置、鍊錶。

出口引數為新的鍊錶。

list *insert(elementtype x,int i,list* ptrl)

else

else

}}

(4)刪除元素

list* delete(int i, list *ptrl)

1、先找到鍊錶的第 i-1 個結點,用p 指向;

2、再用指標s 指向要被刪除的結點:p的下乙個節點

3、然後修改指標,刪除s 所指結點;

4、最後釋放s 所指結點的空間。

list* delete(int i, list *ptrl)

else

else

}}

注意:在進行指標操作時要記住判斷是否為空;

posted @

2016-01-31 15:03

#cloud 閱讀(

...)

編輯收藏

c語言 鍊錶 C語言鍊錶例項 玩轉鍊錶

下圖為最一簡單鍊錶的示意圖 第 0 個結點稱為頭結點,它存放有第乙個結點的首位址,它沒有資料,只是乙個指標變數。以下的每個結點都分為兩個域,乙個是資料域,存放各種實際的資料,如學號 num,姓名 name,性別 和成績 score 等。另乙個域為指標域,存放下一結點的首位址。鍊錶中的每乙個結點都是同...

c語言鍊錶 鍊錶

在儲存一大波數的時候,我們通常使用陣列,但有時候陣列顯得不夠靈活,比如有一串已經從小到大排序好的數 2 3 5 8 9 10 18 26 32 現在需要往這串數中插入6使其得到的新序列仍符合從小到大排列。如果我們使用陣列來實現這一操作,則需要將8和8後面的數字都依次往後挪一位,如果你覺得這幾個數不算...

寒假集訓之鍊錶小結

使用鍊錶首先建立節點的結構體 struct node 鍊錶的建立有兩種一種是順序建立一種是逆序建立,兩者相比較而言逆序更簡單一些,他比順序少設定乙個指標下面是逆序建立鍊錶的函式 struct node creat int len 逆序建立鍊錶 return head 因為返回值是乙個指標所以函式名前...