Python程序查找单向链表的长度而不使用递归的方法
当需要查找单向链表的长度而不使用递归时,需要定义一种方法将元素添加到单向链表中,以及一种方法计算单向链表的长度。
以下是相应的演示:
更多Python相关文章,请阅读:Python 教程
例子
class Node:
def __init__(self, data):
self.data = data
self.next = None
class my_linked_list:
def __init__(self):
self.head = None
self.last_node = None
def add_value(self, my_data):
if self.last_node is None:
self.head = Node(my_data)
self.last_node = self.head
else:
self.last_node.next = Node(my_data)
self.last_node = self.last_node.next
def calculate_length(self):
curr = self.head
length_val = 0
while curr:
length_val = length_val + 1
curr = curr.next
return length_val
my_instance = my_linked_list()
my_data = input('输入单向链表的元素 ').split()
for elem in my_data:
my_instance.add_value(int(elem))
print('单向链表的长度为 ' + str(my_instance.calculate_length()))
输出
输入单向链表的元素 34 12 56 86 32 99 0 6
单向链表的长度为 8
解释
-
创建了“Node”类。
-
创建了另一个具有必需属性的“my_linked_list”类。
-
它具有一个“init”函数,用于将第一个元素即“head”初始化为“None”,将最后一个节点初始化为“None”。
-
定义了一个名为“add_value”的方法,用于向单向链表中添加数据。
-
定义一个名为“calculate_length”的方法,用于查找单向链表的长度。
-
创建“my_linked_list”类的对象。
-
接收用户输入以获取单向链表中的元素。
-
在该对象上调用方法以添加数据。
-
调用calculate_length方法,查找列表的长度。
-
将此输出显示在控制台上。