資料結構之單鏈表

2022-07-20 09:09:13 字數 1792 閱讀 8521

1

//單向鍊錶節點的資料結構

2struct

singlelistnode3;

78//雙向鍊錶節點的資料結構

9struct

dobulelistnode

10;

鍊錶的操作方式主要分為增、刪、改、查,下面以單鏈表為例,分別以最簡單的方式介紹基本用法。

首先定義乙個單鏈表資料結構:

1

struct

singlelistnode

26 singlelistnode(int

ntempvalue):nval(ntempvalue),pnext(null){}7};

89class

singlelist

1013 ~singlelist(){}

14public

:15 singlelistnode* find(int

nindex);

16void insert(int nindex,singlelistnode*pnode);

17 singlelistnode* remove(int

nindex);

18void

printlist();

19private

:20 singlelistnode*m_phead;

21int

m_nsize;

22 };

2.1 查詢

鍊錶節點的查詢不能通過索引快速定位,只能從頭節點開始查詢。

1 singlelistnode* singlelist::find(int

nindex)28

9if(null ==m_phead)

1014

15 singlelistnode* pret =m_phead;

16for(int i = 0;i < nindex;i++)

1722}23

return

pret;

24 }

2.2 更新

首先從列表中查詢待更新的節點,直接把舊資料替換為新值即可。

2.3 刪除

刪除分為三種情況:

1 singlelistnode* singlelist::remove(int

nindex)29

10if(null ==m_phead)

1115

16if(nindex == 0)17

21else

2229

30 pret = pprenode->pnext;

31if

(pret)

3236}37

38return

pret;

39 }

2.4 插入

1

void singlelist::insert(int nindex,singlelistnode*pnode)28

9if(nindex < 0 || nindex >m_nsize)

1014

15if(nindex == 0)16

21else

2229

30 pnode->pnext = ppre->pnext;

31 ppre->pnext =pnode;32}

33 m_nsize++;

34 }

常見的面試題中考察鍊錶應用的場景有:

資料結構之單鏈表

date 08 07 06 descript 單鏈表的實現與應用 public class linlist public node gethead 定位函式 public void index int i throws exception if i 1 current head.next int j...

資料結構之單鏈表

鍊錶 儲存結構的一種,包含兩個部分,資料域和指標域,相對於順序儲存結構來說,插入和刪除的演算法時間複雜度只為o 1 定義 定義 typedef struct node linklist linklist,指標指向每乙個元素 typedef struct nodenode 以下為簡單的c語言實現 in...

資料結構之單鏈表

由於順序表再插入或者刪除時需要移動大量資料,並且如果表比較大,會比較難分配連續的儲存空間導致儲存資料失敗。因此可以採用鍊錶結構,鍊錶結構是一種動態儲存分配的結構形式,可以根據需要動態的申請所需的儲存單元。鍊錶又分為單鏈表,雙向鍊錶,以及單迴圈鍊錶,多重鏈的迴圈鍊錶。本文先介紹單鏈表。典型的單鏈表結構...