ポインタとは?ぽいんた
ポインタとは、データそのものではなく、データが格納されている場所(アドレス)を保持する値。連結リストや木構造では、要素どうしのつながりをポインタで表現する。つなぎ替えだけで構造を変えられるため、挿入・削除がデータ移動なしで行える。
最終更新:2026-10-07
この語が出る過去問を解く →具体例
連結リストの各要素は「データ」と「次の要素のアドレス」を持つ。末尾の要素の次にはナル(空を表す値)を入れて終端を示す。要素Xを削除するには、Xを指していた要素のポインタをXの次の要素へ向け直せばよい。
試験での引っ掛け
ポインタが指す先を書き換える順序を誤ると、後続の要素へ到達できなくなり領域が迷子になる。またポインタのぶん記憶領域を余分に使う点、参照が間接的になるためアクセスが配列より遅くなる点も問われる。
関連用語
出た過去問
出典:平成30年度 春期 高度試験 午前Ⅰ 問8(IPA)
関係データベースのテーブルにレコードを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には空きがあるので木の高さは変わらない。
出典:令和元年度 秋期 高度試験 午前Ⅰ 問4(IPA)
先頭ポインタと末尾ポインタをもち、多くのデータがポインタでつながった単方向の線形リストの処理のうち、先頭ポインタ、末尾ポインタ又は各データのポインタをたどる回数…
正解:末尾のデータを削除する処理
要点:単方向リストの末尾削除は手前に戻れず全体をたどる
単方向リストでは各ノードが次のノードだけを指す。末尾のデータを削除するには、新しい末尾となる「最後から2番目」のノードのポインタを書き換える必要があり、そのノードへは先頭からたどるしかない。末尾ポインタがあっても手前には戻れないため、リスト全体をほぼ一巡することになり、たどる回数が最も多くなる。
出典:令和4年度 春期 高度試験 午前Ⅰ 問2(IPA)
リストには、配列で実現する場合とポインタで実現する場合とがある。リストを配列で実現した場合の特徴として、適切なものはどれか。ここで、配列を用いたリストは配列に要…
正解:リストにある実際の要素数にかかわらず、リストに入れられる要素の最大個数に対応した領域を確保し、実際には使用されない領域が発生する可能性がある。
要点:配列リストは直接参照が速いが領域は固定で挿入が遅い
配列でリストを実現すると、要素は連続領域に置かれるため添字による直接アクセスができる反面、あらかじめ最大要素数分の領域を確保しておく必要がある。実際の要素数が少ないときは未使用の領域が無駄になる。挿入・削除では後続要素をずらす必要があり、要素数に比例した時間がかかる点も配列の弱点である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。