資料結構單鏈表實現

2021-10-24 08:26:30 字數 1928 閱讀 2974

繼上篇順序表,我們又實現了單鏈表。

//參考李春葆資料結構第5版 

#include

#include

using

namespace std;

#define maxsize 50

typedef

int elemtype;

typedef

struct lnode

linknode;

//頭插法

void

createlistf

(linknode *

&l,elemtype a,

int n)

}//尾插法

void

crestelistr

(linknode *

&l,elemtype a,

int n)

r->next=

null;}

//初始化鍊錶

void

initlist

(linknode *

&l)//銷毀鍊錶

void

destroylist

(linknode *

&l)free

(pre);}

//判空

bool

listempty

(linknode *l)

//輸出鍊錶

void

displist

(linknode *l)

printf

("\n");

}//求長度

intlistlength

(linknode *l)

return n;

}//求線性表第i個元素的值

bool

getelem

(linknode *l,

int i,elemtype &e)

if(p==

null

)return

false

;else

}//按元素值查詢

intlocateelem

(linknode *l,elemtype e)

if(p==

null

)return0;

else

return i;

}//插入資料元素

bool

listinsert

(linknode *

&l,int i,elemtype e)

if(p==

null

)return

false

;else

}bool

lsitdelete

(linknode *l,

int i,elemtype &e)

if(p==

null

)return

false

;else

}int

main()

;initlist

(l);

createlistf

(l,a,10)

;displist

(l);

cout<<

listlength

(l)

(l,5

,e);

cout

locateelem

(l,0

)

(l,3

,100);

displist

(l);

lsitdelete

(l,5

,e);

displist

(l);

destroylist

(l);

return0;

}

資料結構 單鏈表實現

線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素 這組儲存單元可以是連續的,也可以是不連續的 因此,為了表示每個資料元素與其直接後繼資料元素之間的邏輯關係,對資料元素來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後繼的資訊 即直接後繼的儲存位置 這兩部分資訊組成資料元素的...

資料結構 單鏈表實現

在鏈式儲存中,節點之間的儲存單元位址可能是不連續的。鏈式儲存中每個結點都包含兩部分 儲存元素本身的資料域和儲存結點位址的指標域。結點中的指標指向的是下乙個結點,也就是儲存的下乙個結點的位址。1.建立鍊錶 在建立鍊錶時,頭結點不儲存資料,但可以儲存鍊錶的資訊。struct header 儲存資料的結點...

資料結構 單鏈表實現

package list public class singlelinkedlist private class node public node object data 頭插法 public void headinsert object data 尾插法 public void tailinser...