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

Chương trình Python để kiểm tra xem 2 danh sách được liên kết có giống nhau không

Khi cần kiểm tra xem hai danh sách được liên kết có giống nhau hay không, một phương pháp để thêm các phần tử vào danh sách được liên kết và một phương pháp để kiểm tra sự bình đẳng của các phần tử trong danh sách được liên kết được xác định.

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

Ví dụ

Nút
class Node:
   def __init__(self, data):
      self.data = data
      self.next = None

class LinkedList_structure:
   def __init__(self):
      self.head = None
      self.last_node = None

   def add_vals(self, data):
      if self.last_node is None:
         self.head = Node(data)
         self.last_node = self.head
      else:
         self.last_node.next = Node(data)
         self.last_node = self.last_node.next

def check_equality(list_1, list_2):
   curr_1 = list_1.head
   curr_2 = list_2.head
   while (curr_1 and curr_2):
      if curr_1.data != curr_2.data:
         return False
      curr_1 = curr_1.next
      curr_2 = curr_2.next
   if curr_1 is None and curr_2 is None:
      return True
   else:
      return False

my_linked_list_1 = LinkedList_structure()
my_linked_list_2 = LinkedList_structure()

my_list = input('Enter the elements of the first linked list: ').split()
for elem in my_list:
   my_linked_list_1.add_vals(int(elem))

my_list = input('Enter the elements of the second linked list: ').split()
for elem in my_list:
   my_linked_list_2.add_vals(int(elem))

if check_equality(my_linked_list_1, my_linked_list_2):
   print('The two linked lists are the same')
else:
   print('The two linked list are not same')

Đầu ra

Enter the elements of the first linked list: 34 56 89 12 45
Enter the elements of the second linked list: 57 23 78 0 2
The two linked list are not same

Giải thích

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

  • Một lớp ‘LinkedList_ architects’ 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à ‘last_node’ thành ‘None’.

  • Một phương thức có tên là ‘add_vals’ được xác định, giúp thêm một giá trị vào ngăn xếp.

  • Một phương thức khác có tên là ‘check_equality’ được xác định, giúp kiểm tra xem các phần tử trong hai danh sách được liên kết có giống nhau hay không.

  • Nó trả về True hoặc False tùy thuộc vào đẳng thức.

  • Hai phiên bản của ‘LinkedList_ architects’ được tạo.

  • Các phần tử được thêm vào hai danh sách được liên kết.

  • Phương thức 'check_equality' được gọi trong hai danh sách được liên kết này.

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