Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python หาองค์ประกอบมากที่สุดใน Doubly Linked List


ภาพรวม

เมื่อต้องการหาองค์ประกอบมากที่สุดใน 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 นี้
  • แสดงผลลัพธ์บนคอนโซล