首頁 >後端開發 >Python教學 >如何在 Python 中實作單向鍊錶

如何在 Python 中實作單向鍊錶

PHPz
PHPz原創
2024-09-10 06:46:021121瀏覽

How to Implement Singly Linked List in Python

class Node:
    def __init__(self,value):
        self.value = value
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def add_front(self,value):
        new_node = Node(value)
        new_node.next = self.head
        self.head = new_node
    def add_back(self,value):
        new_node = Node(value)
        if self.head is None:
            self.head = new_node
        else:
            current = self.head
            while current.next is not None:
                current = current.next
            current.next = new_node
    def print_list(self):
        current = self.head
        while current is not None:
            print(current.value)
            current = current.next

list1 = LinkedList()

list1.add_front(1)
list1.add_front(2)
list1.add_back(3)
list1.print_list()

1。節點類別:

  • 代表鍊錶中的單一元素。
  • 每個節點都有兩個屬性:value 用於儲存數據,next 指向清單中的下一個節點。
  • 建立節點時,其下一個指標設定為 None。

2。鍊錶類:

  • 管理鍊錶操作。
  • 有一個屬性頭,它是鍊錶的起點。最初,由於列表為空,所以 head 設定為 None。

3。 add_front 方法:

  • 將新節點加入到鍊錶的前面。
  • 使用給定值建立一個新節點。
  • 新節點的下一個指標被設定為列表的當前頭。
  • 清單的頭部隨後更新為新節點。

4。 add_back方法:

  • 將新節點加入到鍊錶的末尾。
  • 使用給定值建立一個新節點。
  • 如果清單為空(即 head 為 None),則將新節點設為 head。
  • 如果鍊錶不為空,則遍歷到鍊錶末尾,然後更新最後一個節點的next指標指向新節點。

5。 print_list 方法:

  • 列印鍊錶中從頭到尾的所有值。
  • 從頭部開始,使用next指標迭代每個節點,直到到達末尾(None),列印每個節點的值。

6。用法範例:

  • 建立了 LinkedList 的實例。
  • add_front 被呼叫兩次,將值為 1 和 2 的節點加入到清單的前面。
  • 呼叫add_back將值為3的節點加入到清單末尾。
  • 呼叫print_list列印鍊錶中所有節點的值。輸出為2,1,3,說明節點新增正確。

以上是如何在 Python 中實作單向鍊錶的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn