リスト:
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()