用类编写程序,实现单向链表结构。为每个输入的素数创建新节点,并按照从小到大的顺序插入到链表中的适当位置,当输入非素数时,停止创建新节点并将链表内的数据从首至尾遍历输出。请注意,输出内容严格单增,即输出的元素不能重复。 输入:任意n个整数,彼此间用空格分隔,整数范围[-10000,10000],n<=100. 输出:m个素数,素数之间用空格分隔,行尾无空格,并且保持严格单增。
时间: 2023-05-22 19:01:59 浏览: 90
以下是用类编写程序,实现单向链表结构的代码:
```python
class Node:
def __init__(self, val):
self.val = val
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def insert(self, val):
if not self.head:
self.head = Node(val)
else:
curr = self.head
prev = None
while curr and curr.val < val:
prev = curr
curr = curr.next
if prev:
prev.next = Node(val)
prev.next.next = curr
else:
self.head = Node(val)
self.head.next = curr
def traverse(self):
curr = self.head
while curr:
print(curr.val, end=' ')
curr = curr.next
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
ll = LinkedList()
nums = input().split()
for num in nums:
if is_prime(int(num)):
ll.insert(int(num))
else:
break
ll.traverse()
```
如果您有任何编程问题,都可以向我提问。
阅读全文