ภาพรวม
เมื่อต้องการหาองค์ประกอบมากที่สุดใน Doubly Linked List จะนิยามเมธอดเพิ่มองค์ประกอบ แสดงองค์ประกอบ และเมธอดหาค่ามากที่สุด
ตัวอย่างโค้ด
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.
คำอธิบาย
- สร้างคลาส
Nodeพร้อมprevและnext - สร้างคลาส
DoublyLinkedList_structureพร้อมแอตทริบิวต์ที่จำเป็น - เมธอด
__init__เริ่มต้นโหนดแรก (first) และโหนดสุดท้าย (last) เป็นNone - เมธอด
add_valsเพิ่มค่าเข้า Doubly Linked List - เมธอด
insert_at_endเพิ่มค่าที่ปลายของ Doubly Linked List - เมธอด
find_largest_valหาค่ามากที่สุดใน Doubly Linked List ทั้งหมด - สร้างอินสแตนซ์ของ
DoublyLinkedList_structure - เพิ่มองค์ประกอบเข้า Linked List
- เรียกเมธอด
find_largest_valกับ Doubly Linked List นี้ - แสดงผลลัพธ์บนคอนโซล