Python编程题:输入一个整数n,再输入n个整数,按照输入的顺序建立单链表,并遍历所建立的单链表,输出这些数据。 输入格式: 测试数据有多组,处理到文件尾。每组测试输入一个整数n,再输入n个整数。 输出格式: 对于每组测试,输出顺序链表中的各结点的数据域的值(数据之间留一个空格)。
时间: 2023-02-06 16:12:34 浏览: 120
这是一个经典的单链表的练习题。我们可以先定义一个单链表的类,并实现一些基本的方法。
代码如下:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class SingleLinkedList:
def __init__(self):
self.head = None
def is_empty(self):
"""判断链表是否为空"""
return self.head is None
def length(self):
"""返回链表的长度"""
cur = self.head
count = 0
while cur is not None:
count += 1
cur = cur.next
return count
def travel(self):
"""遍历整个链表"""
cur = self.head
while cur is not None:
print(cur.data, end=' ')
cur = cur.next
print()
def add(self, item):
"""在链表头部添加元素"""
node = Node(item)
node.next = self.head
self.head = node
def append(self, item):
"""在链表尾部添加元素"""
node = Node(item)
if self.is_empty():
self.head = node
else:
cur = self.head
while cur.next is not None:
cur = cur.next
cur.next = node
def insert(self, pos, item):
"""在指定位置添加元素"""
if pos <= 0:
self.add(item)
elif pos > (self.length()-1):
self.append(item)
else:
node = Node(item)
count = 0
cur = self.head
while count < (pos-1):
count += 1
cur = cur.next
node.next = cur.next
cur.next = node
```
这样,我们就可以利用上面的代码来实现题目中的要求了。
具体实现方式如下:
```python
def main():
sll = SingleLinkedList() # 创建一个单链表的对象
while True:
try:
n = int(input()) # 输入整数n
for _ in range(n):
data = int(
阅读全文