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

与えられた2つのリンクリストの間で最初の共通要素を見つけるPythonプログラム


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

出力

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

説明

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

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

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

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

  • 「first_common_val」という名前の別のメソッドが定義されています。これは、2つのリンクリストで見つかった最初の共通値を見つけるのに役立ちます。

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

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

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

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


  1. Pythonで指定されたPrimeの倍数であるAPの最初の要素を検索します

    APシリーズの第1項(A)と共通の差(d)があり、素数Pもあるとすると、最初の要素の位置を見つける必要があります。与えられた素数Pの倍数である与えられたAPで。 したがって、入力がA =3、D =4、P =5の場合、指定されたAPの第4項は素数5の倍数であるため、出力は3になります。したがって、第1項=3、第2項=3 + 4 =7、第3項=3 + 2 * 4=11および第4項=3+ 3 *4=15。 これを解決するには、次の手順に従います- 関数get_pow()を定義します。これにはx、y、pが必要です ans:=1 x:=x mod p 0の場合、実行

  2. 配列内の最大の要素を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、配列の最大要素を計算する必要があります。 ここでは、ループ全体をトラバースして最大の要素を計算し、要素を取得するブルートフォースアプローチを使用します。 以下の実装を観察できます。 例 # largest function def largest(arr,n):    #maximum element    max = arr[0]    # traverse the whole loop    for