循環リンクリストから最大値ノードと最小値ノードを見つけるPythonプログラム
循環リンクリストから最大ノード値と最小ノード値を見つける必要がある場合は、「Node」クラスを作成する必要があります。このクラスには、ノードに存在するデータと、リンクリストの次のノードへのアクセスという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 find_min_node(self): curr = self.head; min_val = self.head.data; if(self.head == None): print("The list is empty"); else: while(True): if(min_val > curr.data): min_val = curr.data; curr= curr.next; if(curr == self.head): break; print("Minimum value node in the list: "+ str(min_val)); def find_max_node(self): curr = self.head; max_val = self.head.data; if(self.head == None): print("List is empty"); else: while(True): if(max_val < curr.data): max_val = curr.data; curr= curr.next; if(curr == self.head): break; print("The maximum valueed node is : "+ str(max_val)); class circular_linked_list: my_cl = list_creation() print("Values have been added to the list") my_cl.add_data(11) my_cl.add_data(52) my_cl.add_data(36) my_cl.add_data(74) my_cl.find_max_node() my_cl.find_min_node()
出力
Values have been added to the list The maximum valueed node is : 74 Minimum value node in the list: 11
説明
- 「Node」クラスが作成されます。
- 必要な属性を持つ別のクラスが作成されます。
- 「add_data」という名前の別のメソッドが定義されています。これは、循環リンクリストにデータを追加するために使用されます。
- 「find_max_node」という名前の別のメソッドが定義されています。このメソッドは、リストを反復処理して、ノードの最大値を取得します。
- 「find_min_node」という名前の別のメソッドが定義されています。このメソッドは、リストを反復処理して、ノードの最小値を取得します。
- 'list_creation'クラスのオブジェクトが作成され、そのオブジェクトでメソッドが呼び出されてデータが追加されます。
- 'init'メソッドが定義されており、循環リンクリストの最初と最後のノードがNoneになります。
- 「find_max_node」メソッドと「find_min_node」メソッドが呼び出されます。
- リンクリスト内のノードを反復処理し、リスト内の最大値と最小値を取得します。
- これはコンソールに表示されます。
-
Pythonのサブツリーのノード値の合計から最小値を見つけるプログラム
すべてのノードに1からnまでの番号が付けられたツリーがあるとします。各ノードには整数値が含まれています。ここで、ツリーからエッジを削除する場合、2つのサブツリーのノード値の合計の差を最小限に抑える必要があります。そのようなサブツリー間の最小の違いを見つけて返す必要があります。ツリーはエッジのコレクションとして提供され、ノードの値も提供されます。 したがって、入力がn =6の場合、edge_list =[[1、2]、[1、3]、[2、4]、[3、5]、[3、6]]、values =[15、 25、15、55、15、65]の場合、出力は0になります。 エッジ(1,2)を削除すると、重みの
-
リスト内の最大要素と最小要素の位置を見つけるPythonプログラム?
Pythonでは、最大要素、最小要素、およびそれらの位置も非常に簡単に見つけることができます。 Pythonはさまざまな組み込み関数を提供します。 min()は配列の最小値を見つけるために使用され、max()は配列の最大値を見つけるために使用されます。 index()は、要素のインデックスを見つけるために使用されます。 アルゴリズム maxminposition(A, n) /* A is a user input list and n is the size of the list.*/ Step 1: use inbuilt function for finding the positi