有序表的實現Python

2021-10-23 12:18:55 字數 1036 閱讀 6423

def add(self, item):

node = node(item)

pretemp = none

temp = self.head

result = false

# 其實不用單獨考慮是否為空表

# 即使是空,後面判斷pretemp時,已經暗含判斷了temp(或者說根本就沒用到temp.next)

# if temp == none:

# self.head = node

# result = true

# else:

while temp != none and not result:

if temp.getdata() > item:

result = true

else:

pretemp = temp

temp = temp.getnext()

if pretemp == none:

node.setnext(temp)

self.head = node

else:

pretemp.setnext(node)

node.setnext(temp)

同樣,在查詢元素時,也是如此。當我們從前向後遍歷時,如果遇到了比要查詢的元素大時,那就說明表中沒有這個資料。(因為後面的肯定比這個元素還大),就不需要繼續向後遍歷了。

def search(self, item):

temp = self.head

found = false

while temp != none and not found:

if temp.getdata == item:

found = true

elif temp.getdata > item:

break

else:

temp = temp.getnext()

return found

其他的方法和無序表類似,這裡就不再重覆記錄了。

無鎖有序鍊錶的實現

感謝同事 kevinlynx 在本站發表此文 無鎖有序鍊錶可以保證元素的唯一性,使其可用於雜湊表的桶,甚至直接作為乙個效率不那麼高的map。普通鍊錶的無鎖實現相對簡單點,因為插入元素可以在表頭插,而有序鍊錶的插入則是任意位置。本文主要基於 high performance dynamic lock ...

有序表的合併 煉表表實現

include using namespace std 函式結果狀態 define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 define maxsize 100 st...

Python有序鍊錶 類的宣告

class node 這裡不用加括號,具體引數都在init函式裡,這也是和函式區別的一部分,函式的公升級和高階有序集合 def init self,val self.data val self.next none def getdata self return self.data def getne...