トラック
/
C++
C++
/
演習
/
単純な連結リスト
単純な連結リスト

単純な連結リスト

中級

はじめに

音楽ストリーミングサービスを提供する会社で働いています。

音楽プレイヤーアプリにプレイリスト機能を作る仕事を任されました。

説明

音楽プレイヤーアプリケーションのプロトタイプを書いてみましょう。

プロトタイプでは、それぞれの曲を単純に数値で表します。数値の範囲(曲のID)が与えられたら、単方向連結リストを作成しましょう。

単方向連結リストが与えられたら、そのリストを逆順にして、曲を反対の順番で再生できるようにしましょう。

Note

連結リストはコンピューターサイエンスにおける基本的なデータ構造で、ほかのデータ構造を実装するときによく使われます。

もっとも単純な連結リストは、単方向連結リストです。つまり、各要素(「ノード」)はデータを持ち、さらにリスト内の次のノードを指すものを持ちます。

連結リストについてもっと深く知りたい場合は、こちらの記事で、わかりやすい図を使って説明されています。

実装のヒント

Listクラスの全体的な構造はあらかじめ用意してあります。 このクラスには、Element*型のheadとsize_t型のcurrent_sizeというプライベート変数があり、自由に使えます。

Element構造体も用意されています。これには、int型のdataとElement*型のnextという2つの変数があります。

詳しくはsimple_linked_list.hを見てください。このファイルを変更する必要はありませんが、必要に合うなら変更してもかまいません。

テストはsimple_linked_list.cppに用意されているとおりの関数を使うので、シグネチャは変更しないでください。関数やメンバーを追加したければ、自由に追加できます。

スマートポインタは使えますか?

ヘッダーファイルには生のポインタが含まれていますが、別の実装を選ぶことも自由です。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
C++ Exercism

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

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