📅  最后修改于: 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
本程序实现了循环链表中偶数和的节点的总和和乘积的计算,可以方便地对循环链表进行处理。