class CNode:public CObject { public:
DECLARE_SERIAL(CNode)
typedef CTypedPtrList<CObList, CNode*> CNodeList; CNodeList m_Child; CNode* m_pParent; CObject* m_pdata; DWORD m_dwChindCount;
CNode(); ~CNode() ;
INT GetNumChild(); void SetChildCount(DWORD dwCount); DWORD GetChildCount(); CNode* GetChild(INT i); CNode * GetParent(); void SetNodeParent(CNode*parent); BOOL HasChildren(); void AddChild(CNode* child); void DeleteChild(CNode * child);
void SetData(CObject * object); CObject * GetData(); //void Seriaize(CArchive &ar);
};
class CObTree : public CObject {
public: CObTree(); ~CObTree();
DECLARE_SERIAL(CObTree)
protected: public: // Attributes (head and tail) // count of elements INT_PTR GetCount() ; BOOL IsEmpty() ; // peek at head or tail CNode* GetRoot(); // remove all elements void RemoveAll(); CNode* NewNode(CObject * object); void FreeNode(CNode*); void FreeChild(CNode *pParent);
void AddRoot(CNode * pNode);
void SerializeNode(CNode* pNode ,CArchive & ar); void SerializeChild(CNode * pNode,CArchive & ar); //CNode * Get // Implementation protected: CNode* m_pNodeRoot; INT_PTR m_nCount;
public: void Serialize(CArchive&);
};
|