python输入一批正整数(数据个数未知,以0结束),用单 链表存储,输出大于平均值的数。
时间: 2024-09-13 18:13:16 浏览: 39
python数据结构链表之单向链表(实例讲解)
在Python中,可以使用类来实现一个单链表,然后通过输入一系列正整数,用单链表存储这些数,最后计算平均值,并输出大于平均值的数。下面是一个简单的示例实现:
首先,定义单链表的节点类和单链表类:
```python
class ListNode:
def __init__(self, value=0, next=None):
self.value = value
self.next = next
class SingleLinkedList:
def __init__(self):
self.head = None
def append(self, value):
if not self.head:
self.head = ListNode(value)
else:
current = self.head
while current.next:
current = current.next
current.next = ListNode(value)
def calculate_average(self):
current = self.head
total_sum = 0
count = 0
while current:
total_sum += current.value
count += 1
current = current.next
return total_sum / count if count > 0 else 0
def print_numbers_greater_than_average(self):
average = self.calculate_average()
current = self.head
while current:
if current.value > average:
print(current.value, end=' ')
current = current.next
print() # 换行
```
使用上述单链表类来输入数、计算平均值并输出大于平均值的数:
```python
# 创建单链表实例
linked_list = SingleLinkedList()
# 输入数据,以0结束
num = int(input("请输入一个正整数(输入0结束): "))
while num != 0:
linked_list.append(num)
num = int(input("请输入一个正整数(输入0结束): "))
# 输出大于平均值的数
print("大于平均值的数有:")
linked_list.print_numbers_greater_than_average()
```
当你运行这段代码时,它会提示你输入一系列正整数,直到输入0为止。然后,它会计算这些数的平均值,并输出所有大于平均值的数。
阅读全文