リンクリストの真ん中のノードを印刷するPythonプログラム
リンクリストの真ん中の要素を印刷する必要がある場合は、「print_middle_val」という名前のメソッドが定義されています。このメソッドは、リンクリストをパラメーターとして受け取り、真ん中の要素を取得します。
以下は同じのデモンストレーションです-
例
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_middle_val(my_list): curr = my_list.head my_len = 0 while curr: curr = curr.next my_len = my_len + 1 curr = my_list.head for i in range((my_len - 1)//2): curr = curr.next if curr: if my_len % 2 == 0: print('The two middle elements are {} and {}'.format(curr.data, curr.next.data)) else: print('The middle-most element is {}.'.format(curr.data)) else: print('The list is empty') my_instance = LinkedList_structure() my_list = input('Enter the elements of the linked list... ').split() for elem in my_list: my_instance.add_vals(int(elem)) print_middle_val(my_instance)
出力
Enter the elements of the linked list... 56 23 78 99 34 11 The two middle elements are 78 and 99
説明
-
「Node」クラスが作成されます。
-
必要な属性を持つ別の「LinkedList_structure」クラスが作成されます。
-
最初の要素、つまり「head」を「None」に初期化するために使用される「init」関数があります。
-
スタックに値を追加するのに役立つ「add_vals」という名前のメソッドが定義されています。
-
「print_middle_val」という名前の別のメソッドが定義されています。これは、リンクリストの中間値をコンソールに表示するのに役立ちます。
-
「LinkedList_structure」のインスタンスが作成されます。
-
リンクリストに要素が追加されます。
-
要素がコンソールに表示されます。
-
このリンクリストで「print_middle_val」メソッドが呼び出されます。
-
出力はコンソールに表示されます。
-
Pythonで単一リンクリストの中間ノードを見つけるプログラム
単一リンクリストノードがあるとすると、中間ノードの値を見つける必要があります。そして、2つの中間ノードがある場合、2番目のノードを返します。これをシングルパスで解決する必要があります。 したがって、入力が[5,9,6,4,8,2,1,4,5,2]の場合、出力は2になります。 これを解決するために、次の手順に従います- p:=ノード d:=0、l:=0 ノードがnullでない場合は、実行してください dが2と同じでない場合、 node:=ノードの次 l:=l + 1、d:=d + 1 それ以外の場合 p:=pの次、d:=0
-
Pythonでリンクリストのノードを削除する
いくつかの要素を持つリンクリストがあるとします。私たちのタスクは、リストから特定のノードを削除する関数を作成することです。したがって、リストが1→3→5→7→9のようで、3を削除すると、1→5→7→9になります。 削除するノードを指すポインタ「ノード」があるとすると、ノードを削除するにはこれらの操作を実行する必要があります- node.val =node.next.val node.next =node.next.next 例(Python) 理解を深めるために、次の実装を見てみましょう- class ListNode: def __init__(se