2025-03-14
教育用プログラミング言語Pascalの開発者ヴィルト氏の現代にも続く名著「アルゴリズムとデータ構造」で紹介されているリスト構造を構造化プログラミング言語Wirthで、記述しました。合わせて、どこも指さないことを表す「null」を予約語といて追加しています。


名前、身長、体重など、複数の変数をまとめたものをオブジェクトと呼びます。配列は、オブジェクトを複数管理する方法のひとつですが、より柔軟に追加、削除を行うことができる「リスト」というデータ構造を使う手もあります。

リスト構造は、各オブジェクトが次のオブジェクトへのリンクを持ちます。次のリンクがないことを表すために「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

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS