Python 程式查詢雙向連結串列中的最大元素


當需要查詢雙向連結串列中的最大元素時,定義了一個向雙向連結串列新增元素的方法,一個列印雙向連結串列元素的方法,以及一個查詢雙向連結串列中最大元素的方法。

以下是相同內容的演示 -

示例

 線上演示

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

class DoublyLinkedList_structure:
   def __init__(self):
      self.first = None
      self.last = None

   def add_vals(self, data):
      self.insert_at_end(Node(data))

   def insert_at_end(self, newNode):
      if self.last is None:
         self.last = newNode
         self.first = newNode
      else:
         newNode.prev = self.last
         self.last.next = newNode
         self.last = newNode

def find_largest_val(my_list):
   if my_list.first is None:
      return None
   largest_val = my_list.first.data
   curr = my_list.first.next
   while curr:
      if curr.data > largest_val:
         largest_val = curr.data
      curr = curr.next
   return largest_val

my_instance = DoublyLinkedList_structure()

my_list = input('Enter the elements in the doubly linked list ').split()
for elem in my_list:
   my_instance.add_vals(int(elem))

largest_val = find_largest_val(my_instance)
if largest_val:
   print('The largest element is {}.'.format(largest_val))
else:
   print('The list is empty.')

輸出

Enter the elements in the doubly linked list 45 12 67 89 234 567 888 44 999
The largest element is 999.

解釋

  • 建立了“節點”類。

  • 建立了另一個具有所需屬性的“雙向連結串列結構”類。

  • 它有一個“init”函式,用於初始化第一個元素,即“頭”為“None”。

  • 定義了一個名為“add_vals”的方法,它有助於向棧新增值。

  • 定義了另一個名為“insert_at_end”的方法,它有助於向雙向連結串列的末尾新增值。

  • 定義了另一個名為“find_largest_val”的方法,它有助於查詢整個雙向連結串列中的最大值。

  • 建立了“雙向連結串列結構”的例項。

  • 元素被新增到連結串列中。

  • 在該雙向連結串列上呼叫了“find_largest_val”方法。

  • 輸出顯示在控制檯上。

更新於: 2021年4月14日

174 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.