單鏈表 雙鏈表和環形鍊錶 相關知識點)

2022-04-08 06:42:20 字數 3307 閱讀 3293

資料結構中有一種叫鍊錶的,它不像陣列有空間限制,可以無限(記憶體範圍內)新增元素

1.單鏈表

單鏈表的儲存如下

(1)鍊錶是以結點來乙個個儲存的鏈式儲存

(2)他有兩個域乙個資料域用來儲存資料,還有乙個指標域用來儲存下乙個結點的儲存的位置

(3)鍊錶有帶有頭節點的鍊錶,也有不帶頭結點的鍊錶

帶頭節點的單鏈表如下

核心**如下
public

class

linkedlist

temp = temp.next;

}//新增

temp.next = headnode;

}//新增有排序的結點

public

void

addbonode

(node headnode)

//看是否找到

if(temp.data > headnode.data)

//找到

else

if(temp.data == headnode.data)}if

(flag)

else

}//更新結點

public

void

update

(node headnode)

while

(true)if

(temp.data == headnode.data)

temp = temp.next;}if

(flag)

else

}//刪除結點

public

void

del(

int a)

boolean flag =

false

;while

(true)if

(temp.data == a)

temp = temp.next;}if

(flag)

else

}//遍歷鍊錶

public

void

list()

while

(true

) system.out.

println

(temp)

; temp = temp.next;}}

//內部結點類

class

node

@override

//方便檢視

public string tostring()

}}

2.雙鏈表

雙鏈表跟單鏈表基本一樣,改變的就是遍歷的時候可以雙向遍歷,刪除的時候可以自刪除,不需要那個臨時結點。

核心**如下
public

class

doublelinkedlist

//遍歷鍊錶

public

void

list()

while

(true

) system.out.

println

(temp)

; temp = temp.next;}}

//新增結點

public

void

addnode

(node headnode)

temp = temp.next;

}//新增

temp.next = headnode;

headnode.pre=temp;

}//更新結點

public

void

update

(node headnode)

while

(true)if

(temp.data == headnode.data)

temp = temp.next;}if

(flag)

else

}//刪除結點

public

void

del(

int a)

boolean flag =

false

;while

(true)if

(temp.data == a)

temp = temp.next;}if

(flag)

else

if(temp.next!=null)

else}}

//結點類

class

node

@override

//方便檢視

public string tostring()

3.環形鍊錶

環形的鍊錶構成乙個圈,尾結點不再指向空指標,指向第乙個結點從而構成乙個環

核心**如下
public

class

circlelinkedlist

//用來構成環形的輔助

node curnode=null;

for(

int i =

1; i <=a ; i++

)else}}

//遍歷鍊錶

public

void

show()

node curnode=firstnode;

while

(true

) curnode=curnode.next;}}

//刪除結點

public

void

putnode

(int a)

//輔助變數

node cur=firstnode;

while

(true)if

(cur.next.data==a)}}

}//結點類

class

node

@override

//方便檢視

單鏈表 雙鏈表和環形鍊錶 相關知識點)

資料結構中有一種叫鍊錶的,它不像陣列有空間限制,可以無限 記憶體範圍內 新增元素 1.單鏈表 單鏈表的儲存如下 1 鍊錶是以結點來乙個個儲存的鏈式儲存 2 他有兩個域乙個資料域用來儲存資料,還有乙個指標域用來儲存下乙個結點的儲存的位置 3 鍊錶有帶有頭節點的鍊錶,也有不帶頭結點的鍊錶 帶頭節點的單鏈...

單鏈表相關演算法

include include using namespace std typedef int elemtype typedef struct node nodetype nodetype create s next null return head void dis nodetype head w...

單鏈表相關操作

這是自己寫的最長的一次 了 在機房敲了一天。以前一直用list來水鍊錶的題 這次終於體會到痛苦了 include include include include include include using namespace std typedef struct node 單鏈表 s,list vo...