ホームページ > バックエンド開発 > Python チュートリアル > Python で単一リンクリストを実装する方法

Python で単一リンクリストを実装する方法

PHPz
リリース: 2024-09-10 06:46:02
オリジナル
1153 人が閲覧しました

How to Implement Singly Linked List in Python

class Node:
    def __init__(self,value):
        self.value = value
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def add_front(self,value):
        new_node = Node(value)
        new_node.next = self.head
        self.head = new_node
    def add_back(self,value):
        new_node = Node(value)
        if self.head is None:
            self.head = new_node
        else:
            current = self.head
            while current.next is not None:
                current = current.next
            current.next = new_node
    def print_list(self):
        current = self.head
        while current is not None:
            print(current.value)
            current = current.next

list1 = LinkedList()

list1.add_front(1)
list1.add_front(2)
list1.add_back(3)
list1.print_list()

ログイン後にコピー

1.ノードクラス:

  • リンクされたリスト内の個々の要素を表します。
  • 各ノードには、データを保存する value とリスト内の次のノードを指す next という 2 つの属性があります。
  • ノードが作成されると、その次のポインターは None に設定されます。

2. LinkedList クラス:

  • リンクされたリストの操作を管理します。
  • リンクされたリストの開始点である属性 head を持ちます。最初は、リストが空であるため、head は None に設定されます。

3. add_front メソッド:

  • リンクされたリストの先頭に新しいノードを追加します。
  • 指定された値で新しいノードが作成されます。
  • 新しいノードの次のポインタは、リストの現在の先頭に設定されます。
  • リストの先頭が新しいノードに更新されます。

4. add_back メソッド:

  • リンクされたリストの末尾に新しいノードを追加します。
  • 指定された値で新しいノードが作成されます。
  • リストが空の場合 (つまり、ヘッドが None の場合)、新しいノードがヘッドとして設定されます。
  • リストが空でない場合は、リストの最後まで移動し、最後のノードの次のポインタを新しいノードを指すように更新します。

5. print_list メソッド:

  • リンクされたリスト内のすべての値を先頭から最後まで出力します。
  • 先頭から開始し、次のポインターを使用して最後 (なし) に到達するまで各ノードを反復処理し、各ノードの値を出力します。

6.使用例:

  • LinkedList のインスタンスが作成されます。
  • add_front は 2 回呼び出され、値 1 と 2 を持つノードをリストの先頭に追加します。
  • add_back を呼び出して、値 3 のノードをリストの末尾に追加します。
  • print_list は、リンクされたリスト内のすべてのノードの値を出力するために呼び出されます。出力は 2、1、3 で、ノードが正しく追加されたことを示しています。

以上がPython で単一リンクリストを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート