循環リンクリストから重複要素を削除するPythonプログラム
循環リンクリストから重複を削除する必要がある場合は、「ノード」クラスを作成する必要があります。このクラスには、ノードに存在するデータと、リンクリストの次のノードへのアクセスという2つの属性があります。
循環リンクリストでは、ヘッドとリアが互いに隣接しています。それらは円を形成するように接続されており、最後のノードに「NULL」値はありません。
初期化関数を持つ別のクラスを作成する必要があり、ノードのヘッドは「なし」に初期化されます。
リンクリストにノードを追加し、重複を削除し、ノード値を出力するために、ユーザーは複数のメソッドを定義します。
以下は同じのデモンストレーションです-
例
class Node:
def __init__(self,data):
self.data = data
self.next = None
class list_creation:
def __init__(self):
self.head = Node(None)
self.tail = Node(None)
self.head.next = self.tail
self.tail.next = self.head
def add_data(self,my_data):
new_node = Node(my_data)
if self.head.data is None:
self.head = new_node
self.tail = new_node
new_node.next = self.head
else:
self.tail.next = new_node
self.tail = new_node
self.tail.next = self.head
def remove_duplicate_vals(self):
curr = self.head
if(self.head == None):
print("The list is empty")
else:
while(True):
temp = curr
index_val = curr.next
while(index_val != self.head):
if(curr.data == index_val.data):
temp.next = index_val.next
else:
temp = index_val
index_val= index_val.next
curr =curr.next
if(curr.next == self.head):
break;
def print_it(self):
curr = self.head
if self.head is None:
print("The list is empty");
return;
else:
print(curr.data)
while(curr.next != self.head):
curr = curr.next
print(curr.data)
print("\n")
class circular_linked_list:
my_cl = list_creation()
print("Nodes are being added to the list")
my_cl.add_data(21)
my_cl.add_data(54)
my_cl.add_data(78)
my_cl.add_data(99)
my_cl.add_data(21)
print("The list is :")
my_cl.print_it();
my_cl.remove_duplicate_vals()
print("The updated list is :")
my_cl.print_it(); 出力
Nodes are being added to the list The list is : 21 54 78 99 21 The updated list is : 21 54 78 99
説明
- 「Node」クラスが作成されます。
- 必要な属性を持つ別のクラスが作成されます。
- 「remove_duplicate_vals」という名前の別のメソッドが定義されています。これは、リンクリストに存在する重複要素を削除するために使用されます。
- 循環リンクリストのノードを表示する「print_it」という名前の別のメソッドが定義されています。
- 'list_creation'クラスのオブジェクトが作成され、そのオブジェクトでメソッドが呼び出されてデータが追加されます。
- 'init'メソッドが定義されており、循環リンクリストの最初と最後のノードがNoneになります。
- 「remove_duplicate_vals」メソッドが呼び出されます。
- リストを繰り返し処理し、要素が繰り返されているかどうかを確認します。
- それが当てはまる場合は、削除されます。
- これは、「print_it」メソッドを使用してコンソールに表示されます。
-
Pythonの2つのリンクリストからリスト要素をインターリーブするプログラム
2つのリンクリストl1とl2があるとすると、l1で始まるこれら2つのリストの要素をインターリーブして、1つのリンクリストを返す必要があります。リンクリストにノードが残っている場合は、リストに追加する必要があります。 したがって、入力がl1 =[5,4,6,3,4,7] l2 =[8,6,9]の場合、出力は[5,8,4,6,6,9、 3,4,7] これを解決するには、次の手順に従います- ans:=l1 l2がnullでない場合は、実行してください ansがnullでない場合、 次のansがnullでない場合、 newnode:=同じ値のl2を持つ新しいリス
-
リストから重複要素を削除するPythonプログラム?
1つのリストには重複要素が含まれています。私たちのタスクは、重複なしの要素を含む別のリストを作成することです。 例 A::[2,3,4,3,4,6,78,90] Output::[2,3,4,6,78,90] アルゴリズム Step 1: create a list. Step 2: create a new list which is empty. Step 3: traverse every element in list. Step 4: if element is not present in the list return true. Step 5: append in the