查找双向链表中最大元素的 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): ifself.lastis 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: ifcurr.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.
解释
创建了“节点”类。
创建了另一个具有必需属性的“DoublyLinkedList_structure”类。
它有一个'init'函数,用于初始化第一个元素,i.e即'head'为'None'。
定义了一个名为“add_vals”的方法,它有助于向堆栈添加一个值。
定义了另一个名为“insert_at_end”的方法,它有助于在双向链表的末尾添加一个值。
定义了另一个名为“find_largest_val”的方法,它有助于在整个双向链表中找到最大值。
'DoublyLinkedList_structure'的一个实例被创建。
元素被添加到链表中。
'find_largest_val'方法在这个双向链表上被调用。
输出显示在控制台上。