令和2年秋期 午前問5

umejiroさん  
(No.1)
ポインタを用いた線形リストの特徴として、「ポインタによって指定されている要素の後ろに,新たな要素を追加する計算量は,要素の個数や位置によらず一定」と書いてあるのですが、ポインタの場合、先頭から追加位置や削除位置を探す必要があるので、最大でO(N)になる気がしており、一定という回答が良く理解できません。
(リストの最初や最後に追加する場合にO(1)になることは理解できます)
考え方が誤っていましたらご教示いただけますと幸いです。
2024.04.08 17:56
Anonymousさん 
(No.2)
「データへのアクセスにかかる計算量」と「新たな要素を追加する計算量」を分けて認識するとわかりやすいかもしれません。

umejiroさんはデータへのアクセスにかかる計算量について考えておられますね。
中間データへのアクセスという意味では計算量はO(N)になりますので認識の通りで合っております。

説明文には"ポインタによって指定されている要素"という前提があるのでデータへのアクセス時間は既に済んでいると考えてOKです。

説明文には"新たな要素を追加する計算量"とありますのでポインタを用いた線形リストにおいては中間データの追加にかかる計算量は一定となります。

まとめますよ、umejiroさんは「データへのアクセスにかかる計算量」と「新たな要素を追加する計算量」の合計は一定ではないという理解をしているのだと思います。
今回の説明文は「新たな要素を追加する計算量」のみに焦点を当てていますので、計算量は一定ということになります。

参考になれば幸いです。
2024.04.08 20:32
umejiroさん  
(No.3)
>Anonymousさん
ご回答いただきましてありがとうございます。
ポインタが既に指定されているという前提であれば、要素の個数や位置によらず一定であることを理解出来ました。誠にありがとうございました。
2024.04.08 21:56

返信投稿用フォーム

※SQL文は全角文字で記載してください。
※宣伝や迷惑行為を防止するため当サイトとIPAサイト以外のURLを含む記事の投稿は禁止されています。

投稿記事削除用フォーム

投稿番号:
パスワード:

その他のスレッド


Pagetop