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

Chương trình Python để thêm các phần tử được định vị tương ứng của 2 danh sách được liên kết

Khi được yêu cầu thêm các phần tử tương ứng của vị trí cụ thể trong hai danh sách được liên kết, một phương pháp để thêm các phần tử vào danh sách được liên kết, một phương pháp để in các phần tử của danh sách được liên kết và một phương pháp để thêm các phần tử vào các vị trí tương ứng của một liên kết danh sách được xác định. Hai phiên bản danh sách được tạo và phương thức đã xác định trước đó được gọi trên các phiên bản danh sách liên kết này.

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

def add_linked_list(my_list_1, my_list_2):
   sum_list = LinkedList_structure()
   curr_1 = my_list_1.head
   curr_2 = my_list_2.head
   while (curr_1 and curr_2):
      sum_val = curr_1.data + curr_2.data
      sum_list.add_vals(sum_val)
      curr_1 = curr_1.next
      curr_2 = curr_2.next
   if curr_1 is None:
      while curr_2:
         sum_list.add_vals(curr_2.data)
         curr_2 = curr_2.next
   else:
      while curr_1:
         sum_list.add_vals(curr_1.data)
         curr_1 = curr_1.next
   return sum_list

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))

sum_list = add_linked_list(my_list_1, my_list_2)

print('The sum of elements in the linked list is ')
sum_list.print_it()

Đầu ra

Enter the elements of the first linked list : 56 34 78 99 54 11
Enter the elements of the second linked list : 23 56 99 0 122 344
The sum of elements in the linked list is
79
90
177
99
176
355

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à ‘print_it’ được xác định, giúp hiển thị các giá trị của danh sách được liên kết.

  • Một phương thức khác có tên là ‘add_linked_list’ được xác định, giúp thêm các phần tử tương ứng của 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 ‘add_linked_list’ đượ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.