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

出力

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

説明

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

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

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

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

  • 「check_equality」という名前の別のメソッドが定義されています。これは、2つのリンクリストの要素が同じかどうかを確認するのに役立ちます。

  • 等式に応じてTrueまたはFalseを返します。

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

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

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

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


  1. Pythonで葉のシーケンスが2つの葉と同じであるかどうかを確認するプログラム

    2つの二分木があるとします。両方の木の左から右への葉の順序が同じであるかどうかを確認する必要があります。 したがって、入力が次のような場合 両方のツリーのシーケンスが[2、6]であるため、出力はTrueになります。 これを解決するには、次の手順に従います。 c:=新しいリスト 関数inorder()を定義します。これが定着し、c cがnullの場合、 c:=新しいリスト rootがnullでない場合、 順序(ルートの左側、c) ルートの左側がnullで、ルートの右側がnullの場合、 cの最後にrootの値を挿入 順序(ルートの権利、c) return c

  2. リストが空かどうかをチェックするPythonプログラム?

    空のリストが与えられました。私たちの仕事は、このリストが空かどうかを確認することです。ここでチェックするのは暗黙のチェック方法です。 アルゴリズム Step 1: We take an empty list. Step 2: then check if list is empty then return 1 otherwise 0. サンプルコード # Python code to check for empty list def checklist(A): if not A: return 1 else: return 0 # Driver