📜  循环链表中偶数和的节点的总和和乘积(1)

📅  最后修改于: 2023-12-03 15:09:52.453000             🧑  作者: Mango

循环链表中偶数和的节点的总和和乘积

介绍

本程序用于计算循环链表中偶数和的节点的总和和乘积。

循环链表是一种特殊的链表,它的最后一个节点指向第一个节点,形成一个循环。偶数和的节点是指节点的数值是偶数的节点。

本程序实现了以下功能:

  • 创建循环链表
  • 计算循环链表中偶数和的节点的总和
  • 计算循环链表中偶数和的节点的乘积
使用说明
创建循环链表

使用 CircularLinkedList() 函数创建循环链表,并使用 add_node(value) 方法添加节点,其中 value 参数为节点的数值。

示例代码:

from circular_linked_list import CircularLinkedList

cll = CircularLinkedList()
cll.add_node(1)
cll.add_node(2)
cll.add_node(3)
cll.add_node(4)
cll.add_node(5)
计算循环链表中偶数和的节点的总和

使用 get_even_sum() 方法计算循环链表中偶数和的节点的总和。

示例代码:

even_sum = cll.get_even_sum()
print(even_sum)  # 输出:6
计算循环链表中偶数和的节点的乘积

使用 get_even_product() 方法计算循环链表中偶数和的节点的乘积。

示例代码:

even_product = cll.get_even_product()
print(even_product)  # 输出:8
完整代码
class Node:
    def __init__(self, value):
        self.value = value
        self.next = None

class CircularLinkedList:
    def __init__(self):
        self.head = None
        self.tail = None
        self.length = 0

    def add_node(self, value):
        node = Node(value)
        if not self.head:
            self.head = node
            self.tail = self.head
        else:
            self.tail.next = node
            self.tail = node
        self.tail.next = self.head
        self.length += 1

    def get_even_sum(self):
        curr_node = self.head
        even_sum = 0
        for _ in range(self.length):
            if curr_node.value % 2 == 0:
                even_sum += curr_node.value
            curr_node = curr_node.next
        return even_sum

    def get_even_product(self):
        curr_node = self.head
        even_product = 1
        for _ in range(self.length):
            if curr_node.value % 2 == 0:
                even_product *= curr_node.value
            curr_node = curr_node.next
        return even_product
总结

本程序实现了循环链表中偶数和的节点的总和和乘积的计算,可以方便地对循环链表进行处理。