home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cset21v1.zip
/
IBMCPP
/
IBMCLASS
/
IITBTRE.H
< prev
next >
Wrap
Text File
|
1993-09-22
|
5KB
|
102 lines
/*******************************************************************************
* *
* COPYRIGHT: *
* IBM C/C++ Tools Version 2.01 - Collection Class Library *
* Licensed Materials - Property of IBM *
* (C) Copyright IBM Corporation 1992, 1993 *
* All Rights Reserved *
* US Government Users Restricted Rights - Use, duplication, or disclosure *
* restricted by GSA ADP Schedule Contract with IBM Corp. *
* *
*******************************************************************************/
#ifndef _IITBTRE_H
#define _IITBTRE_H
#include <iglobals.h>
class ITabularTreeImpl
{
public:
class Node
{
friend class ITabularTreeImpl;
public:
Node* ivParent;
Node* ivChildren [1];
// ivChildren contains in fact numberOfChildren node pointers,
// where numberOfChildren is the template argument of the
// corresponding ITabularTree.
};
Node* ivRoot;
INumber ivNumberOfChildren;
ITabularTreeImpl (INumber numberOfChildren)
: ivRoot (0), ivNumberOfChildren (numberOfChildren)
{}
void initNode (Node* node, Node* parent) const;
INumber numberOfSubtreeElements (Node const*) const;
INumber numberOfSubtreeLeaves (Node const*) const;
IBoolean isLeaf (Node const*) const;
INumber position (Node const*) const;
void attachSubtreeAsRoot (ITabularTreeImpl&, Node*);
void attachSubtreeAsChild (Node* to,
IPosition pos,
ITabularTreeImpl&,
Node* from);
IBoolean setToParent (Node*& node) const;
IBoolean setToFirstExistingChild (Node*& node) const;
IBoolean setToNextExistingChild (Node*& node) const;
IBoolean setToLastExistingChild (Node*& node) const;
IBoolean setToPreviousExistingChild (Node*& node) const;
IBoolean setToFirst (Node*& node,
ITreeIterationOrder order) const;
IBoolean setToNext (Node*& node,
ITreeIterationOrder order) const;
IBoolean setToLast (Node*& node,
ITreeIterationOrder order) const;
IBoolean setToPrevious (Node*& node,
ITreeIterationOrder order) const;
IBoolean allElementsDo (void* function,
ITreeIterationOrder order,
void* env,
IBoolean (*apply) (void *function,
void* env,
void* node),
Node* subtreeRoot);
IBoolean allElementsDo (void* function,
ITreeIterationOrder order,
void* env,
IBoolean (*apply) (void *function,
void* env,
void const* node),
Node* subtreeRoot) const;
IBoolean allElementsDo (void* iterator,
ITreeIterationOrder order,
IBoolean (*apply) (void* iterator,
void* node),
Node* subtreeRoot);
IBoolean allElementsDo (void* iterator,
ITreeIterationOrder order,
IBoolean (*apply) (void* iterator,
void const* node),
Node* subtreeRoot) const;
IBoolean checkNode (Node const*, Node const*) const;
IBoolean checkNode (Node const*) const;
IBoolean isConsistent () const;
protected:
IBoolean isConsistent (Node const*) const;
};
#endif