📌  相关文章
📜  查找链表中所有节点的平均值的程序(1)

📅  最后修改于: 2023-12-03 14:55:36.444000             🧑  作者: Mango

查找链表中所有节点的平均值的程序

本程序旨在查找给定链表中所有节点的平均值。

程序代码
class Node:
    def __init__(self, value):
        self.value = value
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None
        self.tail = None
    
    def add_node(self, value):
        new_node = Node(value)
        if self.head is None:
            self.head = new_node
            self.tail = new_node
        else:
            self.tail.next = new_node
            self.tail = new_node
    
    def calculate_average(self):
        count = 0
        total = 0
        current_node = self.head
        while current_node is not None:
            count += 1
            total += current_node.value
            current_node = current_node.next
        return total/count if count != 0 else 0
使用方法
  1. 创建一个空的链表:

    my_linked_list = LinkedList()
    
  2. 向链表中添加节点:

    my_linked_list.add_node(3)
    my_linked_list.add_node(5)
    my_linked_list.add_node(7)
    
  3. 计算链表中所有节点的平均值:

    average = my_linked_list.calculate_average()
    print(average)  # 5.0
    
解释说明
  1. 程序采用面向对象编程的思路,分别定义了 NodeLinkedList 两个类。

  2. Node 类表示一个链表的节点,节点包含一个值 value 和一个指向下一个节点的指针 next

  3. LinkedList 类表示一个链表,链表包含一个头节点 head 和一个尾节点 tail。链表提供了 add_nodecalculate_average 两个方法:

    • add_node 方法:向链表中添加一个新节点。如果链表为空,则新节点既是头节点也是尾节点;如果链表非空,则在链表尾部插入新节点。

    • calculate_average 方法:遍历链表,计算所有节点的值的总和和节点数量,然后返回节点值的总和除以节点数量得到的平均数。注意,如果链表是空的,该方法返回 0。