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

Chương trình Python để tìm phần tử chung đầu tiên giữa 2 danh sách được liên kết đã cho

Khi được yêu cầu tìm phần tử chung xuất hiện lần đầu tiên giữa hai danh sách được liên kết, phương pháp để thêm phần tử vào danh sách được liên kết và phương thức để lấy phần tử chung xuất hiện lần đầu tiên trong các danh sách được liên kết này được xác định .

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 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 first_common_val(list_1, list_2):
   curr_1 = list_1.head
   while curr_1:
      data = curr_1.data
      curr_2 = list_2.head
      while curr_2:
         if data == curr_2.data:
            return data
         curr_2 = curr_2.next
      curr_1 = curr_1.next
   return None

my_list_1 = LinkedList_structure()
my_list_2 = LinkedList_structure()

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

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

common_vals = first_common_val(my_list_1, my_list_2)

if common_vals:
   print('The element that is present first in the first linked list and is common to both is {}.'.format(common))
else:
   print('The two lists have no common elements')

Đầu ra

Enter the elements of the first linked list : 45 67 89 123 45
Enter the elements of the second linked list : 34 56 78 99 0 11
The two lists have no common elements

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’.

  • 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à ‘first_common_val’ được xác định, giúp tìm giá trị chung đầu tiên được tìm thấy trong hai danh sách được liên kết.

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

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

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

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