Python
 Computer >> コンピューター >  >> プログラミング >> Python

2つのリンクリストの対応する位置付けされた要素を追加するPythonプログラム


2つのリンクリスト内の特定の位置の対応する要素を追加する必要がある場合、リンクリストに要素を追加する方法、リンクリストの要素を印刷する方法、およびリンクの対応する位置に要素を追加する方法リストが定義されています。 2つのリストインスタンスが作成され、以前に定義されたメソッドがこれらのリンクリストインスタンスで呼び出されます。

以下は同じのデモンストレーションです-

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()
です。

出力

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

説明

  • 「Node」クラスが作成されます。

  • 必要な属性を持つ別の「LinkedList_structure」クラスが作成されます。

  • 最初の要素、つまり「head」を「None」に初期化するために使用される「init」関数があります。

  • スタックに値を追加するのに役立つ「add_vals」という名前のメソッドが定義されています。

  • リンクリストの値を表示するのに役立つ「print_it」という名前の別のメソッドが定義されています。

  • 「add_linked_list」という名前の別のメソッドが定義されています。これは、2つのリンクリストの対応する要素を追加するのに役立ちます。

  • 「LinkedList_structure」の2つのインスタンスが作成されます。

  • 両方のリンクリストに要素が追加されます。

  • 「add_linked_list」メソッドは、これらのリンクリストで呼び出されます。

  • 出力はコンソールに表示されます。


  1. Pythonのリンクリスト間でマージするプログラム

    それぞれ長さmとnの2つのリンクリストL1とL2があるとすると、2つの位置aとbもあります。 L1からa番目のノードからノードb番目のノードにノードを削除し、その間にL2をマージする必要があります。 したがって、入力がL1 =[1,5,6,7,1,6,3,9,12] L2 =[5,7,1,6] a =3 b =6の場合、出力は次のようになります。 [1、5、6、5、7、1、6、9、12] これを解決するには、次の手順に従います- head2:=L2、temp:=L2 tempに次のノードがある間、 temp:=次のtemp tail2:=temp count:=0

  2. Pythonを使用してリンクリストとして指定された2つの多項式を追加するプログラム

    2つの多項式が与えられ、2つの多項式の加算を見つける必要があるとします。多項式は、リンクリストとして表す必要があります。多項式の項は、リンクリストノードとして表されます。各リンクリストノードには、係数値、電力値、および次のリンクリストノードへのポインターが含まれます。 2つのリンクリスト多項式を追加した3番目のリンクリストを返す必要があります。 したがって、入力が次のような場合 1x ^ 1 + 1x ^ 2=0および2x^1 + 3x ^ 0 =0、 その場合、出力は3x ^ 1 + 1x ^ 2 + 3x ^ 0 =0になります。 これを解決するには、次の手順に従います-