鏈式儲存結構:不要求邏輯上相鄰的元素在物理位置上也相鄰,因此,在做插入或刪除操作時,不需移動大量元素,但同時無法隨機訪問。資料元素之間的邏輯關係是由結點中的指標指示的。
##################
# nicerwu #
# 2019.02.22 #
##################
class list:
headnode = none
def __init__(self, head = none):
self.headnode = head
def viewall(self):
# 遍歷鍊錶,順序返回乙個儲存鍊錶所存數值的列表
val =
p = self.headnode
while p != none:
p = p.nextnode
return val
def lookfor(self, val = -1):
# 查詢第乙個值為val的結點,若有則返回位置
p = self.headnode
cur = 1
while p:
if p.nodeval == val:
return cur
else:
p = p.nextnode
cur = cur + 1
return false
def getelem(self, index = -1):
# 查詢第index個結點的數值
if index == -1:
return false
else:
p = self.headnode
cur = 1
while p and cur < index:
p = p.nextnode
cur = cur + 1
if p == none:
return false
else:
return p.nodeval
def listinsert(self, index = -1, node = none):
# 在index位置前插入元素node
if index == -1 or node == none:
return false
else:
p = self.headnode
cur = 1
while p and cur < index - 1:
p = p.nextnode
cur = cur + 1
if p == none:
return false
else:
node.nextnode = p.nextnode
p.nextnode = node
return true
def delnode(self, index = -1):
# 刪除第index個結點
if index == -1:
return false
else:
p = self.headnode
cur = 1
while p and cur < index - 1:
p = p.nextnode
cur = cur + 1
if p == none:
return false
else:
p.nextnode = p.nextnode.nextnode
return true
def changeval(self, index = -1, newval = -1):
# 更改第index個結點的值為newval
if index == -1:
return false
else:
p = self.headnode
cur = 1
while p and cur < index:
p = p.nextnode
cur = cur + 1
if p == none:
return false
else:
p.nodeval = newval
return true
def dellist(self):
# 鍊錶置空
self.headnode = none
return true
class listnode:
nodeval = -1
nextnode = none
def __init__(self, val = -1, next = none):
self.nodeval = val
if next != none:
self.nextnode = next
head = listnode(1, listnode(2, listnode(3, listnode(4, listnode(5)))))
testlist = list(head)
print(testlist.viewall())
順序生成乙個儲存1,2,3,4,5的鍊錶並列印出來
head = listnode(1, listnode(2, listnode(3, listnode(4, listnode(5)))))
testlist = list(head)
print(testlist.viewall())
print(testlist.listinsert(3, listnode(7)))
print(testlist.viewall())
在第3個結點前增加乙個值為7的結點
將第三個結點的值改為6
刪除第3個結點
查詢第三個結點所儲存的值
php實現資料結構 單向鍊錶
什麼是單向鍊錶 鍊錶是以鏈式儲存資料的結構,其不需要連續的儲存空間,鍊錶中的資料以節點來表示,每個節點由元素 儲存資料 和指標 指向後繼節點 組成。單向鍊錶 也叫單鏈表 是鍊錶中最簡單的一種形式,每個節點只包含乙個元素和乙個指標。它有乙個表頭,並且除了最後乙個節點外,所有節點都有其後繼節點。它的儲存...
資料結構 單向鍊錶(java實現)
public class node 為節點追加節點 當前節點 node currentnode this while true 賦值當前節點 currentnode nextnode 把需要追回的節點追加為找到的節點的下乙個節點 currentnode.next node return this 刪...
資料結構 單向鍊錶的實現
單向鍊錶的實現 記錄 非常菜雞的開始 節點中定義節點時 成員變數要寫struct 因為沒寫報了一堆錯 老師節點裡的node都是變數型別,只有linknode內部是指標型別,內部使用指標,指標大小為4個位元組 可以分配記憶體很方便。注意teacher輸入的時候為位址 各種指標型別的轉換 main函式中...