演算法學習之單鏈表

2021-09-27 02:40:24 字數 2225 閱讀 8028

單鏈表:

包含乙個未知型別的資料以及乙個指向下乙個結點的指標

1.初始化單鏈表

建立頭結點,令他的下一結點為空

2.插入元素

遍歷該鍊錶直到到達插入點,建立新結點,載入資料,插入鍊錶

3.輸出單鏈表

遍歷整個鍊錶輸出每個結點的資料

4.輸出單鏈表長度

5.判斷單鏈表是否為空

頭結點的指標是否為空

6.輸出單鏈表第i個元素

7.輸出元素a的位置

8.釋放單鏈表

兩個指標乙個指向當前結點,乙個下一結點,邊delete邊往後移,直到指標為空

9.刪除單鏈表第i個元素

先找到第i-1個元素,然後看第i個元素是否為空,為空直接返回0,不為空將第i個結點的位址賦給另外乙個指標,由該指標操作解除連線,刪除資料。

#include

#include

#include

#include

typedef

char elemtype;

typedef

struct lnode

linklist;

//單鏈表

void

initlist

(linklist *

&l);

//建立頭結點

void

destroylist

(linklist *

&l);

//銷毀鍊錶

intlistempty

(linklist *l)

;//判斷鍊錶是否為空

intlistlenth

(linklist *l)

;//返回鍊錶的長度

void

displist

(linklist * l)

;//輸出鍊錶

intgetelem

(linklist * l, elemtype &e,

int i)

;//獲取單鏈表中第i個元素

intlocateelem

(linklist * l, elemtype e)

;//在單鏈表中查詢元素e

intlistinsert

(linklist *

&l,int i, elemtype e)

;//在單鏈表第i個位置插入元素e

intlistdelete

(linklist *

&l, elemtype e,

int i)

;//在單鏈表l中刪除第i個元素

using

namespace std;

intmain()

void

initlist

(linklist *

& l)

void

destroylist

(linklist *

& l)

delete

p;}int

listempty

(linklist * l)

intlistlenth

(linklist * l)

return i;

}void

displist

(linklist * l)

cout <<

"\n";}

intgetelem

(linklist * l, elemtype &e,

int i)

if(p ==

nullptr

)return0;

else

}int

locateelem

(linklist * l, elemtype e)

if(p ==

nullptr

)return0;

else

}int

listinsert

(linklist *

&l,int i, elemtype e)

if(p ==

nullptr

)return0;

else

}int

listdelete

(linklist *

& l, elemtype e,

int i)

if(p ==

nullptr

)return0;

else

}

演算法學習06 單鏈表

乙個單向鍊錶基本由兩個元素組成,即資料字段和指標,而指標通常指向下乙個節點記憶體所在的位址。最後乙個節點沒有其他節點可以連線,因此指標的值為null。建立與遍歷 以動態分配產生鍊錶節點的方式,可以先行定義乙個類資料型別,要有乙個資料字段,接著在類中定義乙個指標變數,其資料型別與此類相同,作用是指向下...

演算法學習日記 單鏈表(1)

鍊錶是常用的線性資料結構。鍊錶的結構就好像是一列火車,每個車廂都代表乙個結點,結點與結點依次相連。單鏈表是所有鍊錶型別中最直接的,單鏈表中每個節點都存了指向下乙個節點的指標。單鏈表就像一列只能從車頭走到車尾的列車。單鏈表vs雙鏈表 雙鏈錶比單鏈表多乙個指向前乙個元素的指標。雙鏈表可以來回的遍歷整個鍊...

左神演算法學習日記 單鏈表(一)

最近在找實習工作,做個左神演算法的學習日記,方便以後鄙視自己。題一 判斷乙個鍊錶是否為回文結構 題目 給定乙個鍊錶的頭節點head,請判斷該鍊錶是否為回文結構。例如 1 2 1,返回true。1 2 2 1,返回true。15 6 15,返回true。1 2 3,返回false。高階 如果鍊錶長度為...