名前、身長、体重など、複数の変数をまとめたものをオブジェクトと呼びます。配列は、オブジェクトを複数管理する方法のひとつですが、より柔軟に追加、削除を行うことができる「リスト」というデータ構造を使う手もあります。
リスト構造は、各オブジェクトが次のオブジェクトへのリンクを持ちます。次のリンクがないことを表すために「null(英語の発音はナルに近いが、一般的にヌルと呼ばれる)」を使います。先頭に挿入する場合(insert)は先頭リンクを書き換え、追加する場合(append)は最後までリンクを辿ってからリンクを書き換えます。
下記が、リスト構造への追加、挿入、検索、削除機能のWirth実装です。
function insert(list, obj) obj.link <- list.link list.link <- obj end function append(list, obj) while list.link list <- list.link next obj.link <- null list.link <- obj end function search(list, name) do if list.name = name return list endif list <- list.link until not list return "" end function remove(list, obj) do if list.link = obj list.link <- obj.link return endif list <- list.link until not list end
Wirth Playground(ヴィルトの遊び場)で、実際に動くプログラムと合わせてご覧ください!
「list - Wirth Playground」
links
- Pascalリスペクトの教育用構造化プログラミング言語「Wirth」
- リスト (抽象データ型) - Wikipedia