バナーをクリックすれば目次に戻ります
Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.
RWBinaryTree
RWBinaryTree RWCollection RWCollectable
形式
-
typedef RWBinaryTree SortedCollection; // Smalltalk typedef.
#include <rw/bintree.h>
RWBinaryTree bt;
説明
-
クラス RWBinaryTree は、compareTo() 関数で内部的にソートされ、順序付けられた要素の集まりを表します。要素を重複させることもできます。このクラスで格納された オブジェクトは、抽象基底クラス RWCollectable を継承しなければなりません。
持続性
-
多相
公開コンストラクタ
-
RWBinaryTree();
- 空のソート済みコレクションを作成します。
-
RWBinaryTree(const RWBinaryTree& t);
- コピーコンストラクタ。t からシャローコピーを作成します。後述のメンバー関数 balance() を呼び出してから戻ります。
-
virtual ~RWBinaryTree();
- クラス RWCollection から再定義した関数。clear() を呼び出します。
公開メンバー演算子
-
void
operator=(const RWBinaryTree& bt);
- 自分自身に bt のシャローコピーを設定します。
-
void
operator+=(const RWCollection ct);
- 自分自身に ct の各要素を挿入します。この演算子を使用してソート済みコレクションを挿入すると、かなりバランスのとれないツリーを作成し、スタックのオーバーフローを起こす可能性があります。
-
RWBoolean
operator<=(const RWBinaryTree& bt) const;
- 自分自身がコレクション bt の部分集合である場合、すなわち自身内のすべての項目が bt 内の項目と等しい場合に TRUE を返します。
-
RWBoolean
operator==(const RWBinaryTree& bt) const;
- 自分自身と bt が等しい場合、すなわち両方の項目数が同じで、かつ両方の項目が等しい場合に TRUE を返します。
公開メンバー関数
-
virtual void
apply(RWapplyCollectable ap, void*);
- クラス RWCollection から再定義した関数で、コレクションの各メンバーに対して最小メンバーから最大メンバーの順番に、ユーザー定義関数 ap を適用します。この関数では、項目に対してコレクションの順序を変えないでください。
-
void
balance();
- ツリーのバランスをとる特殊な関数。重複要素のない完全にバランスのとれた B ツリー では、木の根から任意の終端ノード (葉) までのノード数は各々 1 ノードほどしか違いません。このコレクションでは要素を重複させることができるので、常に完全にバランスのとれたツリーができるわけではありません。重複要素の順序を保持します。
-
virtual RWspace
binaryStoreSize() const;
- クラス RWCollection から継承した関数。
-
virtual void
clear();
- クラス RWCollection から再定義した関数。
-
virtual void
clearAndDestroy();
- クラス RWCollection から継承した関数。
-
virtual int
compareTo(const RWCollectable* a) const;
- クラス RWCollectable から継承した関数。
-
virtual RWBoolean
contains(const RWCollectable* target) const;
- クラス RWCollection から継承した関数。
-
virtual size_t
entries() const;
- クラス RWCollection から再定義した関数。
-
virtual RWCollectable*
find(const RWCollectable* target) const;
- クラス RWCollection から再定義した関数。項目 target と等しい最初の項目を返し、等しい項目がない場合は NULL を返します。
-
virtual unsigned
hash() const;
- クラス RWCollectable から継承した関数。
-
unsigned
height() const;
- 木の根ノードともっとも遠い葉ノードとの間にあるノード数を返します。1 つの項目を持つ RWBinaryTree の高さは 1 です。この値を得るのにツリー全体が走査されることに注意してください。
-
virtual RWCollectable*
insert(RWCollectable* c);
- クラス RWCollection から再定義した関数。項目 c をコレクションに挿入してその項目を返します。挿入が失敗したときは NULL を返します。compareTo() が返す値に応じて、項目 c を挿入します。insert() は RWCollection のバランスを自動的にはとりません。バランスのとれない (したがって、効率も悪い) 結果が生じないように、balance() を呼び出さずにソート済み項目の長い列を insert() で挿入しないように注意してください。
-
virtual RWClassID
isA() const;
- クラス RWCollectable から再定義した関数で、__RWBINARYTREE を返します。
-
virtual RWBoolean
isEmpty() const;
- クラス RWCollection から再定義した関数。
-
virtual RWBoolean
isEqual(const RWCollectable* a) const;
- RWCollectable から継承した関数。
-
virtual size_t
occurrencesOf(const RWCollectable* target) const;
- クラス RWCollection から再定義した関数。項目 target と等しい項目の数を返します。
-
virtual RWCollectable*
remove(const RWCollectable* target);
- クラス RWCollection から再定義した関数。オブジェクト target と等しい最初の項目を取り除き、それを返します。等しい項目がない場合は NULL を返します。
-
virtual void
removeAndDestroy(const RWCollectable* target);
- クラス RWCollection から継承した関数。
-
virtual void
restoreGuts(RWvistream&);
virtual void
restoreGuts(RWFile&);
- クラス RWCollection から継承した関数。
-
virtual void
saveGuts(RWvostream&) const;
virtual void
saveGuts(RWFile&) const;
- クラス RWCollection から再定義した関数で、オブジェクトを順序ではなくそのレベルごとに格納します。この結果、ツリーの構造が保たれます。
-
RWStringID
stringID();
- (仮想関数として動作) クラス RWCollectable から継承した関数。