ポインタとは?
ポインタとは、データそのものではなく、データが格納されている場所(アドレス)を保持する値。連結リストや木構造では、要素どうしのつながりをポインタで表現する。つなぎ替えだけで構造を変えられるため、挿入・削除がデータ移動なしで行える。
高度試験・午前I(全区分共通)の過去問では2回出題されています(2018年度〜2019年度)。
ぽいんた
ポインタの意味
データそのものではなく、データが格納されている場所(アドレス)を保持する値。連結リストや木構造では、要素どうしのつながりをポインタで表現する。つなぎ替えだけで構造を変えられるため、挿入・削除がデータ移動なしで行える。
ポインタの具体例
連結リストの各要素は「データ」と「次の要素のアドレス」を持つ。末尾の要素の次にはナル(空を表す値)を入れて終端を示す。要素Xを削除するには、Xを指していた要素のポインタをXの次の要素へ向け直せばよい。
ポインタは試験でどう引っ掛けられる?
ポインタが指す先を書き換える順序を誤ると、後続の要素へ到達できなくなり領域が迷子になる。またポインタのぶん記憶領域を余分に使う点、参照が間接的になるためアクセスが配列より遅くなる点も問われる。
ポインタと関連する用語
ポインタが出た過去問
関係データベースのテーブルにレコードを1件追加したところ、インデックスとして使う、図のB+木のリーフノードCがノードC1とC2に分割された。ノード分割後のB+木…
正解:中間ノードAから、B、C1、C2、Dの4つのリーフノードへポインタが伸びる。リーフノード同士はB↔C1↔C2↔Dの順に双方向リンクでつながる。
要点:B+木の分割後もリーフは同じ深さでキー順にリンクされる
B+木ではすべてのリーフノードが同じ深さに置かれ、リーフは親ノードから直接ポインタで指される。リーフCが分割されてC1とC2になった場合、両方とも親である中間ノードAの直下に並び、キー値の順序どおりに B→C1→C2→D とリーフ同士が順次リンクされる。中間ノードAには空きがあるので木の高さは変わらない。
出典:平成30年度 春期 高度共通_午前I試験 am1 問8(IPA)先頭ポインタと末尾ポインタをもち、多くのデータがポインタでつながった単方向の線形リストの処理のうち、先頭ポインタ、末尾ポインタ又は各データのポインタをたどる回数…
正解:末尾のデータを削除する処理
要点:単方向リストの末尾削除は手前に戻れず全体をたどる
単方向リストでは各ノードが次のノードだけを指す。末尾のデータを削除するには、新しい末尾となる「最後から2番目」のノードのポインタを書き換える必要があり、そのノードへは先頭からたどるしかない。末尾ポインタがあっても手前には戻れないため、リスト全体をほぼ一巡することになり、たどる回数が最も多くなる。
出典:令和1年度 秋期 高度共通_午前I試験 am1 問4(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。