リスト構造とは順序付けられた複数のデータを扱うためのデータ構造である.例えば,
リスト構造はノードと呼ぶデータ構造をつなぎ合わせることで実現する. ノードは各要素のデータ(上記の例では整数や文字列)と次のノードが何かを示す情報で構成される.
このノードを順序通りに接続し,先頭のノードを記憶することで,全体でリストを構成する.リストに新しく要素を追加するには,新しくノードを作成し, 追加する要素の前のノードが新しいノードを指すようにし,新しいノードが追加する要素の後の要素を指すようにすればよい. 例を下図に示す.
リストから要素を削除するには,削除した要素のノードを飛ばして次のノードの参照が行われるようにすればよい. 例を下図に示す.
配列も順序付けられた複数のデータを扱うことができる. 配列は各要素が順序の通りに整列されいる. 配列は整列されていることを利用して,最初の要素からn番目の要素を簡単に取り出すことができる. その代り要素を挿入するなどの操作には他の要素も移動させる必要がある. これに対してリストは,各要素が順序どおりに整列されている必要はない. そのため例えば3番目の要素を取り出したい場合は,先頭の要素の次の次の要素といったように,順にたどっていく必要がある. その代り要素を挿入するなどの操作は,ノードとノードの連結を修正するだけで済む.
リスト構造のある部分に着目すると,その部分もまたリスト構造になっている. すなわち,リスト構造は,再帰的なデータ構造をしている(下図参照).