|
windows操作系统中的文件夹的数据结构貌似树,不是二叉树,而是普通数.
可以如下设计,不过只是框架,很多都没有考虑到
程序代码:
template <class T>
class DIRSTRUCT
{
DIRSTRUCT * lpParentDir;
vector<DIRSTRUCT*> SubDir;
int m_nSubDir;
T file;
private:
void DisPlay(const DIRSTRUCT<T>* lpDir)
{
cout<<lpDir->file<<endl;
for(int i=0;i<lpDir->m_nSubDir;i++)
{
DisPlay(lpDir->SubDir[i]);
}
}
void Delete(DIRSTRUCT<T> *lpDir)
{
if(lpDir->m_nSubDir)
{
for(int i=lpDir->m_nSubDir-1;i>=0;i--)
{
Delete(lpDir->GetChild(i));
delete lpDir->GetChild(i);
lpDir->SubDir.pop_back();
}
}
lpDir->lpParentDir=NULL;
lpDir->m_nSubDir=0;
}
void Clone(DIRSTRUCT<T> *lp,const DIRSTRUCT<T> *lpDir)
{
for(int i=0;i<lpDir->m_nSubDir;i++)
{
lp->AddChild(lpDir->SubDir[i]->file);
Clone(lp->SubDir[i],lpDir->SubDir[i]);
}
}
public:
DIRSTRUCT<T>()
{ |
|