//树的结构
typedef struct _TreeNode
{
int data;//节点的数据
struct TreeNode* FirstChild;//第一个孩子
struct TreeNode* NextSibling;//孩子的兄弟
}TreeNode;
//LINUX下先序遍历打印目录
void ListDirectory(Directory D)
{
ListDir(D,0);
}
static void ListDir(Directory D,int Depth)
{
if(D is a legitimate Directory)
{
PrintName(D,Depth);
if(D is a Directory)
{
for each child C,of D
ListDir(C,Depth+1);
}
}
}
//后续遍历计算目录大小
static int SizeDirectory(Directory D)
{
int TotalSize = 0;
if(D is a legitimate Directory)
{
TotalSize = FileSize(D);
if(D is a Directory)
{
for each child C,of D
TotalSize +=SizeDirectory(C);
}
}
return TotalSize;
}