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’方法在此双向链表上被调用。
输出显示在控制台上。