Python 中連結串列的漂亮列印


以一種格式良好且易於閱讀的方式列印連結串列對於理解和除錯目的至關重要,這可以使用 Python 的漂亮列印功能輕鬆完成。本文探討了如何在 Python 中為連結串列實現漂亮列印功能。

透過以一種組織化且視覺上吸引人的方式呈現節點及其關聯的資訊,開發人員可以輕鬆地視覺化連結串列的結構,從而幫助理解和高效地解決問題。瞭解如何使用 Python 的強大功能來增強連結串列的清晰度。

如何在 Python 中漂亮列印連結串列?

以下是我們將遵循的步驟,以便在 Python 中漂亮列印連結串列:

步驟(演算法)

  • 首先,我們定義一個名為 Node 的類,它表示連結串列中的單個節點。每個節點都有 next 指標和 data 屬性。

  • 接下來,我們定義 LinkedList 類,它管理連結串列。它有一個屬性 head,指向列表中的第一個節點。最初,head 設定為 None 以指示空列表。

  • add_node 方法用於向連結串列中新增節點。它以 data 引數作為輸入。在方法內部,我們使用給定的資料建立一個新的 Node 物件。如果連結串列為空(即 head 為 None),我們將新節點設定為 head。否則,我們將從 head 開始遍歷到列表的末尾,並移動到下一個節點,直到到達最後一個節點。最後,我們透過更新最後一個節點的 next 屬性將新節點追加到列表的末尾。

  • pretty_print 方法用於以可讀的格式列印連結串列。如果連結串列為空(即 head 為 None),它將列印一條訊息指示列表為空。否則,它將從 head 開始遍歷每個節點。它使用一個計數變數跟蹤節點編號,並列印每個節點的資料及其對應的編號。該方法繼續此過程,直到到達列表的末尾。

  • get_length 方法計算並返回連結串列的長度。它從 head 開始遍歷每個節點,對於遇到的每個節點,都會遞增一個 length 變數。最後,它返回列表的總長度。

  • 然後,我們對linked_list 物件呼叫pretty_print 方法以顯示列表的內容。這將列印每個節點的資料及其對應的編號。

  • 最後,我們對linked_list 物件呼叫get_length 方法以計算並列印列表的長度。

如果我們想修改程式,請按照以下步驟操作:

  • 您可以新增其他方法來對連結串列執行各種操作,例如搜尋特定值、刪除節點或在特定位置插入節點。這些方法可以新增到 LinkedList 類中。

  • 如果您想自定義節點類,可以向 Node 類新增更多屬性以儲存其他資訊。

  • 您可以增強 pretty_print 方法以顯示有關每個節點的更多資訊。例如,您可以列印每個節點的記憶體地址或列印箭頭符號以指示節點之間的連結。

  • 您可以修改 add_node 方法以在列表的開頭而不是末尾插入節點。

  • 您可以實現方法來反轉連結串列、合併兩個連結串列或將連結串列拆分為兩個獨立的列表。

示例

在下面的示例用法中,我們建立一個 LinkedList 物件,新增值為 10、20、30、40 和 50 的節點,然後呼叫pretty_print 方法以顯示列表。最後,我們呼叫get_length 方法以檢索連結串列的長度並列印它。

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

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

   def add_node(self, d):
      new_node = Node(d)
      if self.head is None:
         self.head = new_node
      else:
         curr = self.head
         while curr.next:
              curr = curr.next
         curr.next = new_node

   def pretty_print(self):
      if self.head is None:	
         print("Linked list is empty.")
      else:
         curr = self.head
         count = 1
         while curr:
            print(f"Node {count}: {curr.d}")
            curr = curr.next
            count += 1

   def get_length(self):
      length = 0
      curr = self.head
      while curr:
         length += 1
         curr = curr.next
      return length


# Example usage
linked_list1 = LinkedList()
linked_list1.add_node(10)
linked_list1.add_node(20)
linked_list1.add_node(30)
linked_list1.add_node(40)
linked_list1.add_node(50)

linked_list1.pretty_print()
print(f"Length: {linked_list1.get_length()}")

輸出

Node 1: 10
Node 2: 20
Node 3: 30
Node 4: 40
Node 5: 50
Length: 5

結論

總之,我們可以說,透過在 Python 中為連結串列實現漂亮列印功能,開發人員可以大大提高其資料結構的可讀性和視覺化效果。連結串列的清晰和組織化的表示有助於更容易理解和除錯,從而實現高效的解決問題。憑藉 Python 的靈活性,增強連結串列的清晰度對於任何程式設計師來說都成為一項簡單的任務。

更新於: 2023-07-25

1K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.