Be MySelf                                                    
 

 

日志更新

最新评论

留言板

链接

Blog信息





支持序列化的树结构类,类似于CObList
haosheng 发表于 2006/9/1 9:32:00


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&);


};


阅读全文 | 回复(0) | 引用通告 | 编辑 | 收藏该日志
 


发表评论:

    昵称:
    密码:
    主页:
    标题: