Python 程序用于查找双向链表中的最大元素

pythonserver side programmingprogramming

当需要查找双向链表中的最大元素时,定义了一种向双向链表添加元素的方法、一种打印双向链表元素的方法以及一种查找双向链表中最大元素的方法。

下面是同样的演示 −

示例

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('输入双向链表中的元素').split()
for elem in my_list:
   my_instance.add_vals(int(elem))

largest_val = find_largest_val(my_instance)
if largest_val:
   print('最大元素为{}.'.format(largest_val))
else:
   print('列表为空。')

输出

输入双向链表中的元素 45 12 67 89 234 567 888 44 999
最大元素为999。

解释

  • 创建了‘Node’类。

  • 创建了另一个具有必需属性的‘DoublyLinkedList_structure’类。

  • 它有一个‘init’函数,用于初始化第一个元素,即‘head’为‘None’。

  • 定义了一个名为‘add_vals’的方法,用于将值添加到堆栈中。

  • 定义了另一个名为‘insert_at_end’的方法,用于将值添加到双向链表的末尾。

  • 定义了另一个名为‘find_largest_val’的方法,用于在整个双向链表中查找最大值。

  • 创建‘DoublyLinkedList_structure’的实例。

  • 将元素添加到链接列表中。

  • ‘find_largest_val’方法在此双向链表上被调用。

  • 输出显示在控制台上。


相关文章