Python程序查找单向链表的长度而不使用递归的方法

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方法,查找列表的长度。

  • 将此输出显示在控制台上。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程