A-------------1
A1--------2
B-------------1
B1--------2
C1----3
C2----3
B2--------2
B3--------2
struct Entry
{
string key; //键
string value; //值
vector<Entry> children; //孩子节点
}
using Entries = vector<Entry>;
添加节点
void AddEntry(int level, string key, string value, Entries* entry){
if(0 == level){ //1级节点
Entries children;
Entry newEntry{key, value, children};
entry->push_back(newEntry);
}
else{ //从1级节点向下寻找children
AddEntry(level - 1, key, value, &entry->at(entry->size() - 1).children);
}
}
例如:
C2----3
level = 2, B-------------1的children,当前大小为1
level = 1, B1--------2的children,当前大小为1
添加节点到children列表里