不使用递归计算链表中元素出现次数的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):

      ifself.last_nodeis 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 print_it(self):

      curr = self.head

      while curr:

         print(curr.data)

         curr = curr.next

   def count_val(self, key):

      curr = self.head

      my_count = 0

      while curr:

         ifcurr.data== key:

            my_count = my_count + 1

         curr = curr.next

      return my_count

my_instance = my_linked_list()

my_list = [56, 43, 70, 67, 89, 91, 70, 23, 46, 70]

for elem in my_list:

   my_instance.add_value(elem)

print("链表包含以下元素:")

my_instance.print_it()

key_val = int(input('Enter the data item: '))

count_val = my_instance.count_val(key_val)

print('{0} occurs {1} time(s) in the list.'.format(key_val, count_val))

输出结果
链表包含以下元素:

56

43

70

67

89

91

70

23

46

70

Enter the data item: 70

70 occurs 3 time(s) in the list.

解释

  • 创建了“节点”类。

  • 创建了另一个具有必需属性的“my_linked_list”类。

  • 它有一个“init”函数,用于初始化第一个元素,i.e“head”为“None”,最后一个节点为“None”。

  • 定义了另一个名为“add_value”的方法,用于向链表添加数据。

  • 定义了另一个名为“print_it”的方法,它遍历列表并打印元素。

  • 定义了另一个名为“count_val”的方法,用于查找链表中特定元素的出现频率。

  • 创建了“my_linked_list”类的对象。

  • 调用 count_val 方法以查找特定元素的频率。

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

以上是 不使用递归计算链表中元素出现次数的Python程序 的全部内容, 来源链接: utcz.com/z/335580.html

回到顶部