作成日 2010/12/30 最終更新日 2010/12/30
問題2.3(問題タイトル:自己再帰的な関連)
オブジェクト指向設計についての問題(中級レベル)です。
問題タイトル:自己再帰的な関連
重要度:★★★☆☆(普通)
難易度:★★★★★(難しい)
問題タイトル:自己再帰的な関連
重要度:★★★☆☆(普通)
難易度:★★★★★(難しい)
問題:2分木は図1のようなデータ構造で、ソートや検索を行うときに使用される(2分検索木、2分ヒープ)。
図1 2分木のデータ構造
2分木の説明:データは最大2つの子(例えば図1ではデータ:41、41の子:35と67)もち、2つの子をそれぞれ「左」、「右」と言う。
子は常にあるとは限らない(図1では5は1つしか子を持っていないし、30については1つも子を持っていない)。
また親も常にあるとは限らない(図1では41の親は存在しない)。
このデータ構造をクラス図で表したのが図2である。
図2 2分木のデータ構造をクラス図で表記したもの
図2の「ア」〜「ウ」に入る語句をそれぞれ以下から選べ。
※ア、イは回答が逆になっても良い。
a.親
b.子
c.左
d.右
e.0..1
f.0..2
g.1
h.2
i.*
j.1..*
問題文終わり
注意:これ以上、下にスクロールすると解答・解説が見えちゃいます。
解答:ア:b(子)、イ:f(0..2)、ウ:a(親)
※ア、イは回答が逆になっても良い。
解説:
ちょっと難しかったかなぁ〜。
でも、意外とこういう関係は出てくるんです。
わかるところから、埋めていきます。
まず、「ウ」ですが、多重度が「0..1」であり、それはaの「親」しかありません。
そうすると、「ア」と「イ」には子の方が入るわけです。
「ア」をcの「左」やdの「右」は何故ダメなのかですが、「左」や「右」を入れてしまうと関連の線が足りなくなります。
ですから「子」とし、多重度を「0..2」とするしかありません。
※さらに、「ア」をcの「左」やdの「右」とすると、自己再帰な関連で表記できなくなる気がします。それだと、問題にならない・・・。
最後にですが、さっぱりわからなかった人は「関連 - だるまのエクセルVBA 」を見てください。
このページを作成する際に参考にしたページや、もっと勉強したい人向けの資料です。
このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方は
メール をお願いします。
Microsoft 、Windows 、Visual Basic および Excel は米国Microsoft
Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS
、Mac OS
X は米国Apple
Computer,Inc.の登録商標または商標です。
OMG、UML、Unified Modeling Languageは、Object Management Groupの商標または登録商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。
このホームページの作成者はこれらの会社とはいっさい関係がありません。