單鏈表操作之替換

2022-01-12 14:16:06 字數 1186 閱讀 1810

在單鏈表結構中的替換也利用了遍歷模式。這種情況下,我們在鍊錶結構中搜尋乙個給定項或乙個給定位置,並且用新的項替換該項。第乙個操作,即替換乙個給定的項,並不需要假定目標項在鍊錶結構中。如果目標項不存在,那就不會發生替換,並且該操作返回false。如果目標項存在,新的項會替換它,並且該操作返回true。**如下:

# coding: utf-8

class node(object

): def __init__(self, data, next=none):

self.data =data

self.next =next

head =none

for count in range(1,6

): head =node(count, head)

print head.data, head.next,head

targetitem = 2

newitem = 100

probe =head

while probe != none and targetitem !=probe.data:

probe =probe.next

if probe !=none:

probe.data =newitem

print true

else

: print false

還有乙個替換第i項的操作,形式如下:

# coding: utf-8

class node(object

): def __init__(self, data, next=none):

self.data =data

self.next =next

head =none

for count in range(1,6

): head =node(count, head)

print head.data, head.next,head

probe =head

index = 3

newitem = 100

while index >0

: probe =probe.next

index -= 1

probe.data = newitem

兩種替換操作在平均情況下都是線性的。

結束!

單鏈表之基礎操作

ifndef linklist h define linklist h include include include typedef int datatype typedef struct listnode node,pnode,list,plist void initlinklist plist...

單鏈表操作之搜尋

鍊錶結構的順序搜尋和遍歷是類似的,因為也必須從第1個節點開始且沿著鍊錶直到遇到哨兵。下面例子可能會遇到兩個哨兵 coding utf 8 class node object def init self,data,next none self.data data self.next next head...

單鏈表操作之遍歷

幾乎陣列上所有的操作都是基於索引的,而索引是陣列結構乙個不可或缺的部分。在鍊錶結構上,必須通過操作結構在的鏈結來模擬基於索引的操作。訪問鍊錶的每乙個節點,而不刪除它們,這種操作叫做遍歷。它使用的是臨時的指標變數,這個變數先初始化鍊錶結構的head指標,然後控制乙個迴圈,如下 coding utf 8...