清览数据结构课程家谱代码
时间: 2025-01-04 07:34:48 浏览: 5
### 数据结构课程中的家谱代码实现
在家谱问题中,通常可以使用树形数据结构来表示家庭成员之间的关系。这里提供一个简单的 Python 版本的家谱代码示例,该版本利用了面向对象编程的思想。
#### 使用Python定义节点类
为了构建家谱,首先需要创建一个 `Node` 类用于存储个人的信息以及其父母和子女的关系:
```python
class Person:
def __init__(self, name):
self.name = name
self.children = []
self.parent = None
def add_child(self, child_node):
self.children.append(child_node)
child_node.parent = self
def get_ancestors(self):
ancestors = []
current_parent = self.parent
while current_parent is not None:
ancestors.append(current_parent)
current_parent = current_parent.parent
return ancestors[::-1]
def display_family_tree(self, level=0):
print(' ' * (level*4) + '|---' + self.name)
for child in self.children:
child.display_family_tree(level + 1)
```
此部分展示了如何通过自定义的数据结构——即基于类的对象模型来表达家族成员间的关系[^2]。
#### 构建并展示家谱实例
下面是一个具体的例子,说明怎样初始化几个 `Person` 对象并将它们连接起来形成一棵完整的家谱树:
```python
if __name__ == "__main__":
adam = Person("Adam")
eve = Person("Eve")
cain = Person("Cain")
abel = Person("Abel")
# Adam 和 Eve 是夫妻,他们有两个孩子 Cain 和 Abel.
adam.add_child(cain)
adam.add_child(abel)
seth = Person("Seth")
enos = Person("Enos")
# Seth 是 Adam 的第三个儿子.
adam.add_child(seth)
seth.add_child(enos)
print("Family Tree:")
adam.display_family_tree()
```
这段程序不仅实现了家谱的功能,还能够打印出整个家族树状图以便于查看各个个体间的亲属关系。
阅读全文