ポインタを利用したシンプルなデータ構造

スタック、キュー、リンクリスト、根付き木
スタック
ラストイン ファストアウト
Push と Pop で表される
最初は空 S.top =0
すべての動作はO(1)でできる
キュー
ファーストイン ファーストアウト
head と tailをもつ
最初はhead も tail も0
アルゴリズムの説明 (ある容量が決まってて循環することもいう)
head = tail + 1 つまり、追いついてしまったらいっぱい
すべての動作はO(1)でできる
リンクリスト
線形順序によって作られたリスト。順序はポインターによって決定される。
図の説明
NIL NOT it LIST
LIST-SEARCHのアルゴリズム説明
この動作はθ(n)かかる
LIST-INSERTアルゴの説明
O(1)かかる
KLISTーDELETEアルゴリズムの説明
入ってることを知ってたらO(1)ですむ。でもFindしてるとθ(n)かかるよ
LISTーDELETE'説明
これはリストのhead tailを考えない
するとLIST-searchも書きやすくなるよ
LIST-INSERTも書きやすくなる
O(1)減るだけで、結局θ(n)の可能性ある