python 數據結構中的鏈表操作


鏈表的定義:

  鏈表(linked list)是由一組被稱為結點的數據元素組成的數據結構,每個結點都包含結點本身的信息和指向下一個結點的地址。由於每個結點都包含了可以鏈接起來的地址信息,所以用一個變量就能夠訪問整個結點序列。也就是說,結點包含兩部分信息:一部分用於存儲數據元素的值,稱為信息域;另一部分用於存儲下一個數據元素地址的指針,稱為指針域。鏈表中的第一個結點的地址存儲在一個單獨的結點中,稱為頭結點或首結點。鏈表中的最后一個結點沒有后繼元素,其指針域為空。

  

python代碼中實現鏈表的創建、展示鏈表數據、添加,追加元素、刪除元素、統計鏈表中的元素個數的操作:

# 鏈表中的節點
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

# 鏈表:節點管理類
class Link:
    def __init__(self):
# 鏈表的表頭
        self.head = None

# 展示鏈表中的數據
    def show(self):
        temp = self.head
        while temp:
            print(temp.data)
            temp = temp.next

# 在表頭添加元素
    def add(self, item):
# 創建節點
        node = Node(item)
# 新節點的下一個元素指針指向表頭
        node.next = self.head
# 新的表頭設置為當前節點
        self.head = node

# 在末尾添加元素
    def append(self, item):
# 創建節點
        node = Node(item)
# 判斷鏈表是否為空
        if self.head:
# 找到最后一個元素
            temp = self.head
            while temp.next:
                temp = temp.next
# 使用最后一個元素的next指向新節點
            temp.next = node
        else:
            self.head = node

# 統計鏈表元素個數
    def length(self):
        count = 0
        temp = self.head
        while temp:
            count += 1
            temp = temp.next
        return count

# 刪除元素
    def remove(self, item):
# 記錄要刪除元素的前面的元素
        prev = None
        temp = self.head
        while temp:
            if temp.data == item:
                if temp is self.head:
                    self.head = temp.next
                else:
                    prev.next = temp.next
                break
            else:
                prev = temp
                temp = temp.next

# 創建鏈表
link = Link()

# 添加元素
link.add(1)
link.add(2)
link.add(3)

# 追加元素
link.append(4)
link.append(5)
link.append(6)

# 刪除元素
link.remove(3)

print(link.length())
print()

link.show()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM