作成日 2010/12/30
最終更新日 2010/12/30

問題2.3(問題タイトル:自己再帰的な関連)

オブジェクト指向設計についての問題(中級レベル)です。

問題タイトル:自己再帰的な関連
重要度:★★★☆☆(普通)
難易度:★★★★★(難しい)


1.問題
2.解答・解説
3.参考文献


1.問題

問題タイトル:自己再帰的な関連
重要度:★★★☆☆(普通)
難易度:★★★★★(難しい)

問題: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..*

問題文終わり

このページのトップへ












注意:これ以上、下にスクロールすると解答・解説が見えちゃいます。

2.解答・解説

解答:ア:b(子)、イ:f(0..2)、ウ:a(親)
※ア、イは回答が逆になっても良い。
解説:
 ちょっと難しかったかなぁ〜。
 でも、意外とこういう関係は出てくるんです。

 わかるところから、埋めていきます。
 まず、「ウ」ですが、多重度が「0..1」であり、それはaの「親」しかありません。
 そうすると、「ア」と「イ」には子の方が入るわけです。
 「ア」をcの「左」やdの「右」は何故ダメなのかですが、「左」や「右」を入れてしまうと関連の線が足りなくなります。
 ですから「子」とし、多重度を「0..2」とするしかありません。
 ※さらに、「ア」をcの「左」やdの「右」とすると、自己再帰な関連で表記できなくなる気がします。それだと、問題にならない・・・。

 最後にですが、さっぱりわからなかった人は「関連 - だるまのエクセルVBA」を見てください。

このページのトップへ

3.参考文献

 このページを作成する際に参考にしたページや、もっと勉強したい人向けの資料です。

番号

リンク先の名称

リンク先の説明

リンクした日

1 関連 - だるまのエクセルVBA 関連について説明しています。 2010/12/30

番号

著者名

書籍名

ISBN

1 オージス総研オブジェクトの広場編集部、山内 亨和 その場でつかえるしっかり学べるUML2.0 978-4798012391
2 桐越 信一 , 国正 聡 , 竹政 昭利 , 照井 康真 , 橋本 大輔 UMLモデリング教科書 UMLモデリングL2 第2版 978-4798117324


Prev Up Next  Top
このページのトップへ


このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方はメールをお願いします。

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の商標または登録商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。

このホームページの作成者はこれらの会社とはいっさい関係がありません。