Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để đếm số lần xuất hiện của một phần tử trong danh sách được liên kết bằng cách sử dụng đệ quy

Khi cần đếm số lần xuất hiện của một phần tử cụ thể của danh sách liên kết với sự trợ giúp của đệ quy, phương thức thêm phần tử vào danh sách liên kết, phương thức in các phần tử của danh sách liên kết và phương thức để đếm sự xuất hiện của một phần tử trong danh sách liên kết được xác định. Một hàm trợ giúp được định nghĩa, vì đệ quy đang được sử dụng. Hàm trợ giúp này gọi hàm đếm số lần xuất hiện đã xác định trước đó.

Dưới đây là một minh chứng cho điều tương tự -

Ví dụ

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 print_it(self):
      curr = self.head
      while curr:
         print(curr.data)
         curr = curr.next

   def count_val(self, key):
      return self.count_helper_fun(self.head, key)

   def count_helper_fun(self, curr, key):
      if curr is None:
         return 0

      if curr.data == key:
         return 1 + self.count_helper_fun(curr.next, key)
      else:
         return self.count_helper_fun(curr.next, key)

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("The linked list contains the below elements:")
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))

Đầu ra

The linked list contains the below elements:
56
43
70
67
89
91
70
23
46
70
Enter the data item: 70

70 occurs 3 time(s) in the list.

Giải thích

  • Lớp 'Node' được tạo.

  • Một lớp ‘my_linked_list’ khác với các thuộc tính bắt buộc được tạo.

  • Nó có chức năng ‘init’ được sử dụng để khởi tạo phần tử đầu tiên, tức là ‘head’ thành ‘None’ và nút cuối cùng thành ‘None’.

  • Một phương thức khác có tên là ‘add_value’ được xác định, được sử dụng để thêm dữ liệu vào danh sách được liên kết.

  • Một phương thức khác có tên là ‘print_it’ được xác định, phương thức này sẽ lặp qua danh sách và in các phần tử.

  • Một phương thức khác có tên là 'count_val' được định nghĩa dùng để gọi hàm trợ giúp.

  • Một hàm trợ giúp khác, có tên là ‘count_helper_fun’ được xác định, giúp xác định tần suất xuất hiện của một phần tử cụ thể trong danh sách được liên kết.

  • Một đối tượng của lớp ‘my_linked_list’ được tạo.

  • Phương thức count_val được gọi để tìm tần suất của một phần tử cụ thể.

  • Đầu ra này được hiển thị trên bảng điều khiển.