c++树形数据结构存储族谱
时间: 2023-09-04 07:09:37 浏览: 122
树形数据结构可以用来存储族谱,每个节点代表一个家庭成员,父节点指向父亲,子节点指向子女。以下是一个用C++实现的树形数据结构存储族谱的示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
class Node {
public:
string name;
vector<Node*> children;
Node(string name) {
this->name = name;
}
void addChild(Node* child) {
children.push_back(child);
}
};
void printTree(Node* node, int depth) {
for (int i = 0; i < depth; i++) {
cout << "-";
}
cout << node->name << endl;
for (Node* child : node->children) {
printTree(child, depth + 1);
}
}
int main() {
Node* root = new Node("祖先");
Node* child1 = new Node("父亲");
Node* child2 = new Node("叔叔");
Node* grandchild1 = new Node("我");
Node* grandchild2 = new Node("表弟");
child1->addChild(grandchild1);
child2->addChild(grandchild2);
root->addChild(child1);
root->addChild(child2);
printTree(root, 0);
return 0;
}
```
输出结果为:
```
祖先
-父亲
--我
-叔叔
--表弟
```
其中,祖先节点没有父节点,所以它是根节点。父亲和叔叔是祖先的子节点,我和表弟是父亲和叔叔的子节点。可以看到,通过树形数据结构,我们可以方便地存储和遍历族谱。
阅读全文