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

โปรแกรม Python หาค่าสูงสุดและต่ำสุดใน Circular Linked List


เมื่อต้องการหาค่าสูงสุดและต่ำสุดของโหนดใน Circular Linked List ต้องสร้างคลาส 'Node' ที่มีแอตทริบิวต์สองอย่าง: ข้อมูลในโหนด และการเข้าถึงโหนดถัดไป

ใน Circular Linked List หัวและท้ายอยู่ติดกัน เชื่อมเป็นวงกลม ไม่มีค่า 'NULL' ในโหนดสุดท้าย

สร้างอีกคลาสหนึ่งมีฟังก์ชันเริ่มต้น และหัวโหนดเริ่มต้นเป็น 'None'

กำหนดเมธอดโดยผู้ใช้สำหรับเพิ่มโหนด หาค่าต่ำสุดและสูงสุดในโหนด และแสดงผล

ตัวอย่าง

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class list_creation:
    def __init__(self):
        self.head = Node(None)
        self.tail = Node(None)
        self.head.next = self.tail
        self.tail.next = self.head

    def add_data(self, my_data):
        new_node = Node(my_data)
        if self.head.data is None:
            self.head = new_node
            self.tail = new_node
            new_node.next = self.head
        else:
            self.tail.next = new_node
            self.tail = new_node
            self.tail.next = self.head

    def find_min_node(self):
        curr = self.head
        min_val = self.head.data
        if self.head == None:
            print("The list is empty")
        else:
            while True:
                if min_val > curr.data:
                    min_val = curr.data
                curr = curr.next
                if curr == self.head:
                    break
            print("Minimum value node in the list: " + str(min_val))

    def find_max_node(self):
        curr = self.head
        max_val = self.head.data
        if self.head == None:
            print("List is empty")
        else:
            while True:
                if max_val < curr.data:
                    max_val = curr.data
                curr = curr.next
                if curr == self.head:
                    break
            print("The maximum valueed node is : " + str(max_val))

class circular_linked_list:
    my_cl = list_creation()
    print("Values have been added to the list")
    my_cl.add_data(11)
    my_cl.add_data(52)
    my_cl.add_data(36)
    my_cl.add_data(74)
    my_cl.find_max_node()
    my_cl.find_min_node()

ผลลัพธ์

Values have been added to the list
The maximum valueed node is : 74
Minimum value node in the list: 11

คำอธิบาย

  • สร้างคลาส 'Node'
  • สร้างคลาสอื่นพร้อมแอตทริบิวต์ที่จำเป็น
  • กำหนดเมธอด 'add_data' สำหรับเพิ่มข้อมูลใน Circular Linked List
  • กำหนดเมธอด 'find_max_node' วนลูปหาค่าสูงสุดในโหนด
  • กำหนดเมธอด 'find_min_node' วนลูปหาค่าต่ำสุดในโหนด
  • สร้างออบเจ็กต์ของคลาส 'list_creation' และเรียกใช้เมธอด
  • เมธอด 'init' กำหนดโหนดแรกและสุดท้ายเป็น None
  • เรียกใช้เมธอด 'find_max_node' และ 'find_min_node'
  • วนลูปผ่านโหนด หาค่าสูงสุดและต่ำสุด
  • แสดงผลบนคอนโซล