トラック
/
Nim
Nim
/
演習
/
連結リスト
連結リスト

連結リスト

中級

説明

双方向連結リストを実装しましょう。

配列と同じように、連結リストはシンプルな線形のデータ構造です。 連結リストを使えば、キュー、スタック、連想配列など、よくあるデータ型をいくつも実装できます。

連結リストは、ノードと呼ばれるデータ要素の集まりです。 単方向連結リストでは、各ノードが値と次のノードへのリンクを持ちます。 双方向連結リストでは、各ノードが前のノードへのリンクも持ちます。

ここでは、双方向連結リストの実装を書いていきます。 値と、次のノードおよび前のノードへのポインターを保持するNodeを実装しましょう。 次に、最初と最後のノードへの参照を保持し、要素の追加と削除のための、配列に似たインターフェースを提供するListを実装します。

  • push(末尾に値を挿入);
  • pop(末尾の値を削除);
  • shift(先頭の値を削除).
  • unshift(先頭に値を挿入);

実装をシンプルに保つため、テストではエラーが起きる状況は扱いません。 具体的には、空のリストに対してpopやshiftが呼び出されることはありません。

連結リストについて詳しくは、Wikipediaのページを読んでみましょう。


出典

コンピューターサイエンスの定番のテーマ
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Nim Exercism

連結リストを始める準備はできましたか?

Exercismに登録すれば、70個の演習、そして本物の人間によるメンタリングとともに、Nimを学んでマスターできます。すべて無料です。