我有一个文本文件,它是类似于:解析文本文件到C++有向图或邻接表?
person: head, body
head: eyes, nose, ears, mouth
body: arm, leg
arm: elbow, hand
leg: thigh, knee, foot
我想在任何一个邻接表或有向图来表示此。什么是最好的方法来做到这一点?我无法弄清楚最好的数据结构或如何用C++来表示它。
我使用结构的键控(人,头,等等)值试图和它的父指数,它是儿童作为载体:
struct Node
{
string key;
int parentIndex;
vector<string> children;
};
但这似乎效率不高。有任何想法吗?
也许这会更好?
struct {
string key;
Node* parent;
vector<Node> children;
};
@Christophe我编辑了这个问题。 – bdeo
要阅读文件,你应该使用'std :: ifstream'。对于解析行,不要忘记C++是建立在C上的 - 查看C的'strtok'函数。为了存储,考虑一下'std :: map <[key],[container]的味道''。 – Conduit
@Conduit是说我们应该使用map>?为了查询这个结构,我们希望使用像DFS等算法的图形。 –
bdeo