投稿する

H31春午後問8 [2453]

 むむさん(No.1) 
アルゴリズムで理解できない箇所があったのでご教授ください。

  行21のnode[nsize]←iが理解できません。
仕様ではnode[]は「節の値の昇順に整列した、親が作成されていない節を表す要素組の要素番号を格納した配列」とあります。
これは図3でいうところの要素番号0,1,2,3を、1,3,2,0の順番で格納していると解釈しました。
nsize=0,i=0の時、行21はnode[0]←0となりますが、これは先頭の要素番号1を0に書き換えている?のでしょうか。
しかし、書き換えてしまうと行6,7でもともとの要素番号を取り出せなくなってしまいます。
なので、私の理解が足りないのだと思うのですが何がおかしいのか教えていただけないでしょうか…。
2020.09.04 15:13
QMさん(No.2) 
FE ゴールドマイスター
> これは図3でいうところの要素番号0,1,2,3を、1,3,2,0の順番で格納していると解釈しました。
ここが勘違いですね。

SortNodeでやっているのは、node[]に「値を格納する」処理です。
つまり、まだ値は格納されていないnode[]に、親が作成されていない節の要素番号を、ここで順番に格納しているのです。


2020.09.04 16:37
 むむさん(No.3) 
QMさま、ご回答ありがとうございます。

確かに、問題文を読むと「行番号19~24で親が作成されていない節を表す要素組の要素番号を抽出し、行番号25で節の値の昇順に整列する」と書いてありました。
書いてあるのに、node[]の働きを勘違いし続けていたのが迷走した原因でした。

勘違いをピンポイントで指摘して頂いたので腑に落ちました。ありがとうございました。
アルゴリズムと文章を結びつける読解力不足を痛感しました。頑張ります。
2020.09.04 21:49
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop