資料結構中有一種叫鍊錶的,它不像陣列有空間限制,可以無限(記憶體範圍內)新增元素
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
//方便檢視
public string tostring()
}
單鏈表 雙鏈表和環形鍊錶 相關知識點)
資料結構中有一種叫鍊錶的,它不像陣列有空間限制,可以無限 記憶體範圍內 新增元素 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...