16,548
社区成员




#include <vector>
#include <iostream>
using namespace std;
//树结构
struct Group
{
char Name[32];
vector <Group> SubGroups;
Group(char* name){ memcpy(Name, name, strlen(name)+1); }
};
void PrintTree(const Group& group, int lev = 0)
{
cout << "lev: " << lev << " name: " << group.Name <<endl;
vector <Group>::const_iterator iter = group.SubGroups.begin();
for(; iter != group.SubGroups.end(); ++iter)
PrintTree(*iter, lev+1);
}
void TreeToBuffer(Group& group, char* buff)
{
}
void BufferToTree(char* buff, Group& group)
{
}
int main()
{
char buff[1024];
//可能的树结构
Group group("group A");
group.SubGroups.push_back(Group("group A.1"));
group.SubGroups[0].SubGroups.push_back("group A.1.1");
group.SubGroups[0].SubGroups[0].SubGroups.push_back("group A.1.1.1");
group.SubGroups[0].SubGroups.push_back("group A.1.2");
group.SubGroups.push_back(Group("group A.2"));
group.SubGroups[1].SubGroups.push_back("group A.2.1");
group.SubGroups[1].SubGroups.push_back("group A.2.2");
PrintTree(group);
//将树结构保存在buffer中
TreeToBuffer(group, buff);
Group newGroup(" ");
//将buffer中的树结构数据还原
BufferToTree(buff, newGroup);
PrintTree(newGroup);
return 0;
}
这是一道测试题,有熟悉树处理的帮我看一下如何实现TreeToBuffer和BufferToTree函数。