Python程式:建立n個節點的迴圈連結串列並逆序顯示


需要建立一個迴圈連結串列並逆序顯示時,需要建立一個名為'Node'的類。

為了逆序顯示迴圈連結串列中的資料元素,可以定義另一個方法來反轉資料。在這個類中,有兩個屬性:節點中存在的資料,以及對連結串列中下一個節點的訪問。在迴圈連結串列中,頭節點和尾節點彼此相鄰。它們連線成一個圓圈,最後一個節點沒有'NULL'值。

還需要建立一個名為'linked_list'的類,該類將具有一個初始化函式,並且節點的頭將初始化為'None'。

以下是相同的演示 -

示例

線上演示

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

class linked_list:
   def __init__(self):
      self.head = None
     
   def add_data(self,my_data):
      new_node = Node(my_data)
      new_node.next = self.head
      self.head = new_node
   
   def reverse(self):
      prev = None
      current = self.head
      while(current is not None):
         next = current.next
         current.next = prev
         prev = current
         current = next
      self.head = prev
   
   def print_it(self):
      temp = self.head
      while(temp):
         print(temp.data)
         temp = temp.next

my_list = linked_list()
my_list.add_data(47)
my_list.add_data(89)
my_list.add_data(34)
my_list.add_data(11)

print("The list is : ")
my_list.print_it()
print("The list is being reversed")
my_list.reverse()
print("The reversed list is : ")
my_list.print_it()

輸出

The list is :
11
34
89
47
The list is being reversed
The reversed list is :
47
89
34
11

解釋

  • 建立了'Node'類。
  • 建立了另一個具有所需屬性的'linked_list'類。
  • 定義了另一個名為'add_data'的方法,用於向迴圈連結串列新增資料。
  • 定義了另一個名為'reverse'的方法,用於反轉儲存在迴圈連結串列中的資料。
  • 定義了另一個名為'print_it'的方法,用於在控制檯上顯示連結串列資料。
  • 建立了'linked_list'類的物件,並將資料新增到其中。
  • 使用'reverse'方法將其反轉。
  • 使用'print_it'方法在控制檯上顯示。

更新於:2021年3月13日

124 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.