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('最大值为{}。'.format(largest_val))
else:
print('列表为空。')
输出
输入双向链表中的元素45 12 67 89 234 567 888 44 999
最大值为999。
说明
-
创建“Node”类。
-
创建所需属性的另一个“DoublyLinkedList_structure”类。
-
它具有用于将第一个元素(即“head”)初始化为“None”的“init”函数。
-
定义了一个名为“add_vals”的方法,该方法有助于向堆栈添加值。
-
定义了另一个名为“insert_at_end”的方法,该方法有助于向双向链表末尾添加值。
-
定义了另一个名为“find_largest_val”的方法,该方法有助于查找整个双向链表中的最大值。
-
创建“DoublyLinkedList_structure”的实例。
-
将元素添加到链接列表中。
-
在该双向链表上调用“find_largest_val”方法。
-
在控制台上显示输出。