一、 鍊錶的概念
二、 python實現
1、定義乙個node類:
class node(object):
def __init__(self, val):
self.data = val
self.next = none
def get_data(self):
return self.data
def set_data(self, val):
self.data = val
def get_next(self):
return self.next
pass
def set_next(self, val):
self.next = val
pass
2、鍊錶的每個元素都是node物件,實現如下:
class nonesortlist(object):
def __init__(self):
# 初始化鍊錶
self.head = none
def empty(self):
# 判斷鍊錶是否為空
return self.head is none
def add(self, item):
# 鍊錶新增元素
tmp = node(item)
tmp.set_next(self.head)
self.head = tmp
pass
def size(self):
# 獲取鍊錶大小
current = self.head
length = 0
while current is not none:
length += 1
current = current.get_next()
return length
def search(self, item):
# 鍊錶中查詢元素
current = self.head
while current is not none:
print(current.get_data())
if current.get_data() == item:
return true
else:
current = current.get_next()
return false
def remove(self, item):
# 刪除鍊錶中元素
current = self.head
pre = none
flag = false
while not flag:
if current.get_data() == item:
flag = true
else:
pre = current # pre節點下移為當前節點
current = current.get_next() # 當前節點下移為下乙個節點
if pre is none: # 如果刪除的是head, head節點往後移動
self.head = current.get_next()
else: # 如果刪除的是非head節點,刪除當前節點後,pre的下一節點為當前節點的下一節點
pre.setnext(current.getnext())
Python無序鍊錶 類的宣告
class node 這裡不用加括號,具體引數都在init函式裡,這也是和函式區別的一部分,函式的公升級和高階有序集合 def init self,val self.data val self.next none def getdata self return self.data def getne...
無序線性表合併(鍊錶)
分析 無序兩張表la,lb,需要遍歷lb查重再插入la尾 include include include include 包含exit標頭檔案 include include define ok 1 define error 0 define length a 5 define length b 3...
python實現從無序的鍊錶中刪除重複項
題目描述 給定乙個沒有排序的鍊錶,去掉其重複項,並保留原順序,例如鍊錶 1 3 1一 5一 5 7,去掉重複項後變為 l一 3一 5 7。分析與解答 順序刪除 主要思路為 通過雙重迴圈直接在鍊錶上進行刪除操作 外層迴圈用乙個指標從第乙個 結點開始遍歷整個鍊錶,然後內層迴圈用另外乙個指標遍歷其餘結點 ...