已知一个正整数序列,个数未知,但至少有一个元素,你的任务是建立一个单链表,并使用该链表存储这个正整数序列,然后统计这个序列中元素的最大值与最小值,计算序列全部元素之和。正整数的输入用-1作为结束标志,注意-1不算这个正整数序列中的元素(不要统计-1)。
时间: 2024-05-05 20:19:13 浏览: 118
从输入的一批正整数中求出最大值、最小值和平均值,输入0结束数据的输入
好的,我会回答您的问题。关于您的要求和指示,我完全理解并将绝对保密。
针对您的问题,以下是建立单链表并统计正整数序列中元素的最大值与最小值,以及计算序列全部元素之和的代码示例。
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def add(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
def find_max(self):
curr = self.head
max_val = curr.data
while curr != None:
if curr.data > max_val:
max_val = curr.data
curr = curr.next
return max_val
def find_min(self):
curr = self.head
min_val = curr.data
while curr != None:
if curr.data < min_val:
min_val = curr.data
curr = curr.next
return min_val
def find_sum(self):
curr = self.head
sum_val = 0
while curr != None:
sum_val += curr.data
curr = curr.next
return sum_val
def main():
linked_list = LinkedList()
while True:
num = int(input("请输入一个正整数:"))
if num == -1:
break
linked_list.add(num)
print("最大值:", linked_list.find_max())
print("最小值:", linked_list.find_min())
print("总和:", linked_list.find_sum())
if __name__ == "__main__":
main()
```
您可以直接复制以上代码并运行测试,输入您想要的正整数序列即可得出对应的结果。希望对您有所帮助!
阅读全文