题目描述与分析
题目描述:
请编写一个程序,实现以下操作:
构建一个单向链表,链表中包含一组整数数据,输出链表中的第 m 个元素(m 从 1 开始计数)。
要求:
1.使用自定义的链表数据结构
2.提供一个 linkedList 类来管理链表,包含构建链表、输出链表元素以及输出第 m 个元素的方法
3.在 main 函数中,创建一个包含一组整数数据的链表,然后输入 m,调用链表的方法输出第 m 个元素
输入描述:
第一行包含两个整数 n 和 k,n 表示需要构建的链表的长度,k 代表输入的 m 的个数。
接下来一行包含 n 个整数,表示链表中的元素。
接下来一行包含 k 个整数,表示输出链表中的第 m 个元素。
输出描述:
测试数据输出占 k 行。
每行输出链表中的第 m 个元素。如果 m 位置不合法,则输出“Output position out of bounds.”。
一、代码编写
依旧先把代码的基础结构给搭建好,上一道题我们已经学习了如何定义链表和链表节点,以及链表插入和打印链表的函数,这些内容都是“模板”写法,在本节内容中依旧如此定义。我们只需要拿来稍加修改即可。
# 链表节点定义
class Node:
def __init__(self, data):
self.data = data
self.next = None
# 链表类定义
class LinkList:
def __init__(self):
self.head_node = None
self.length = 0
# insert 方法用于插入数据
def insert(self, data):
self.length += 1
new_node = Node(data)
if self.head_node is None:
self.head_node = new_node
return self.head_node
else:
current_node = self.head_node
while current_node.next is not None:
current_node = current_node.next
current_node.next = new_node
return new_node
然后我们需要读取 n 和 k,n 表示需要构建的链表的长度,k 代表输入的 m 的个数,并构建一个新的链表。
n, k = map(int, input().split()) # 输入 n 和 k, n 表示需要构建的链表的长度,k 代表输入的 m 的个数
link_list = LinkList() # 构建一个新的链表
和上一节内容相似,依旧需要使用for 循环,迭代读取 n 个整数,然后使用之前定义的insert函数将新的链表节点插入到链表尾部,从而根据读入的数据构建一个完整的链表。
elements = list(map(int, input().split())

最低0.47元/天 解锁文章

2399

被折叠的 条评论
为什么被折叠?



