データ構造とアルゴリズム7--リスト

リスト:

  1.リストは、データ記録の系列から成り、インデックス内の各レコードの次のレコードデータへのポインタを含む領域が存在します

  リンクリストの配列リスト対2

    操作(1)ステップの固定された数は、リスト内の任意のノードに挿入することができる使用して、削除

    (2)ランダムアクセスを許可していません。

  3.循環リストと二重にリンクされたリスト

    

 

 

   4.センチネルノード

    いくつかの実装形態では、追加のセンチネル節又はダミーノードを追加したりした後、最後のデータは、第1のデータ記録前に記録してもよいです

    リスト処理アルゴリズムの数を簡素化し、加速します

  操作をリスト抽象データ型(ADT)

    (1)空のリストを作成します。

    (2)リストが空であるかどうかが決定されます

    (3)リスト内の要素の数を決定します

    (4)リスト内の指定された位置に要素を追加

    (5)リスト内の指定された位置にある要素を削除

    (6)リスト内のすべての要素を削除

    (7)リスト内の指定された位置にある要素に取ります

    (8)各時間操作の複雑

クラスノード:
     デフ __init__ (自己、値、次の):
        self.value = 
        self.next = 次の
 クラスのLinkedList:
     デフ __init__ (自己):
        self.head = ノード(なし、なし)
        self.size = 0
     DEF add_first(自己、値):
        ノード = ノード(値なし)
        node.next = self.head.next
        self.head.next = ノード
        self.size + = 1
     デフadd_last(自己、値):
        new_node = ノード(値なし)
        ノード = self.head
         !node.next = なし:
            ノード = node.next
        node.next = new_node
        self.size + = 1
     デフprint_list(自己):
        ノード = self.head
         !node.next = なし:
            ノード = node.next
             プリント(node.value、端= "  " プリント()
     DEFの長さ(自己):
         戻りself.size

LL = LinkedListの()
ll.add_first( 5 
ll.add_first( 8 
ll.add_last( 14 印刷(ll.length())
ll.print_list()

 

おすすめ

転載: www.cnblogs.com/lvxiaoning/p/11646808.html
おすすめ