リンク リストを整形式で読みやすい方法で印刷することは、理解とデバッグの目的にとって非常に重要です。これは、Python の Pretty print 関数を使用して簡単に実行できます。この記事では、Python でリンクされたリストのきれいな印刷を実装する方法について説明します。
ノードとその関連情報を体系的かつ視覚的に魅力的な方法で表示することで、開発者はリンク リストの構造を簡単に視覚化でき、問題を理解し、効果的に解決するのに役立ちます。 Python の力を利用してリンク リストの明瞭さを向上させる方法を学びます。
Python でリンクされたリストをきれいに印刷する手順は次のとおりです -
まず、リンク リスト内の単一ノードを表す Node という名前のクラスを定義します。各ノードには次のポインターとデータ属性があります。
次に、リンク リストを管理する LinkedList クラスを定義します。これには、リンクされたリストの最初のノードを指す属性ヘッダーがあります。最初は、ヘッダーは空のリストを示すために None に設定されます。
add_node メソッドは、リンク リストにノードを追加するために使用されます。データパラメータを入力として受け取ります。このメソッド内で、指定されたデータを使用して新しい Node オブジェクトを作成します。リンクされたリストが空の場合 (つまり、ヘッドが None の場合)、新しいノードをヘッドとして設定します。それ以外の場合は、最初から開始して最後のノードに到達するまで次のノードに移動し、リストの最後まで移動します。最後に、最後のノードの next プロパティを更新して、新しいノードをリストの末尾に追加します。
pretty_print メソッドは、リンクされたリストを読みやすい形式で印刷するために使用されます。リンクされたリストが空の場合 (つまり、head が None の場合)、リンクされたリストが空であることを示すメッセージが出力されます。それ以外の場合は、各ノードを最初から走査します。カウント変数を使用してノード番号を追跡し、各ノードのデータとそれに対応する番号を出力します。このメソッドは、リストの最後に到達するまでこのプロセスを継続します。
get_lengthこのメソッドは、リンクされたリストの長さを計算して返します。これは、先頭から開始して各ノードを走査し、遭遇するノードごとに長さ変数を増分します。最後に、リストの全長を返します。
次に、linked_list オブジェクトの pretty_print メソッドを呼び出して、リストの内容を表示します。これにより、各ノードのデータとそれに対応する番号が出力されます。
最後に、linked_list オブジェクトの get_length メソッドを呼び出して、リストの長さを計算して出力します。
プログラムを変更したい場合は、以下の手順に従ってください -
追加のメソッドを追加して、特定の値の検索、ノードの削除、特定の場所へのノードの挿入など、リンク リストに対してさまざまな操作を実行できます。これらのメソッドは LinkedList クラスに追加できます。
ノード クラスをカスタマイズする場合は、ノード クラスにプロパティを追加して追加情報を保存できます。
Pretty_print メソッドを拡張して、各ノードに関する詳細情報を表示できます。たとえば、各ノードのメモリ アドレスを印刷したり、ノード間のリンクを示す矢印記号を印刷したりできます。
add_node メソッドを変更して、リストの末尾ではなく先頭にノードを挿入することができます。
リンク リストを逆にしたり、2 つのリンク リストを結合したり、リンク リストを 2 つの別々のリストに分割したりするメソッドを実装できます。
メソッドを呼び出してリストを表示します。最後に、get_length メソッドを呼び出して、リンクされたリストの長さを取得して出力します。 リーリー 出力
class Node: def __init__(self, d): self.d = d self.next = None class LinkedList: def __init__(self): self.head = None def add_node(self, d): new_node = Node(d) if self.head is None: self.head = new_node else: curr = self.head while curr.next: curr = curr.next curr.next = new_node def pretty_print(self): if self.head is None: print("Linked list is empty.") else: curr = self.head count = 1 while curr: print(f"Node {count}: {curr.d}") curr = curr.next count += 1 def get_length(self): length = 0 curr = self.head while curr: length += 1 curr = curr.next return length # Example usage linked_list1 = LinkedList() linked_list1.add_node(10) linked_list1.add_node(20) linked_list1.add_node(30) linked_list1.add_node(40) linked_list1.add_node(50) linked_list1.pretty_print() print(f"Length: {linked_list1.get_length()}")###結論は###
以上がPython でリンクされたリストをきれいに印刷するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。