Python でリンクされたリストをきれいに印刷する

PHPz
リリース: 2023-08-28 08:33:09
転載
1401 人が閲覧しました

Python でリンクされたリストをきれいに印刷する

リンク リストを整形式で読みやすい方法で印刷することは、理解とデバッグの目的にとって非常に重要です。これは、Python の Pretty print 関数を使用して簡単に実行できます。この記事では、Python でリンクされたリストのきれいな印刷を実装する方法について説明します。

ノードとその関連情報を体系的かつ視覚的に魅力的な方法で表示することで、開発者はリンク リストの構造を簡単に視覚化でき、問題を理解し、効果的に解決するのに役立ちます。 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 つの別々のリストに分割したりするメソッドを実装できます。

###例###

以下の使用例では、LinkedList オブジェクトを作成し、値 10、20、30、40、および 50 を持つノードを追加し、

pretty_print

メソッドを呼び出してリストを表示します。最後に、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 でリンク リストのきれいな印刷機能を実装することで、開発者はデータ構造の読みやすさと視覚化を大幅に向上できると言えます。明確で整理されたリンク リスト表現により、理解とデバッグが容易になり、効率的な問題解決が可能になります。 Python の柔軟性により、リンク リストの明確性を高めることは、どのプログラマーにとっても簡単な作業です。

以上がPython でリンクされたリストをきれいに印刷するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!