表示单继承的 C++ 数据结构

标签 c++ inheritance data-structures

我需要构建一个数据结构来表示文件中存在的类的继承图。这是为仅支持单一继承的语言编写编译器的一部分。

存在的所有类的名称都存储在一个链表中。我需要遍历该列表并从中构建一个继承图。 然后我需要检查继承是否有循环,例如 如果

    B inherits A
    C inherits B

然后

    A cannot inherit C. 

像这样的循环在语言中是不允许的。

什么数据结构最适合这个?

最佳答案

在单一继承约束下,您的图形是一个森林,即一组树。您的问题在文献中被称为图中的循环检测 http://en.wikipedia.org/wiki/Cycle_%28graph_theory%29#Cycle_detection

关于表示单继承的 C++ 数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30153950/

相关文章:

java - Java 中具有不同参数数据类型的继承和重载方法

python - 我需要一个简洁的数据结构建议来存储非常大的数据集(在 Python 中训练朴素贝叶斯)

c++ - 在 QTableView 中适配列

c# - 两个私有(private)子类到一个公共(public)类

c++ - 对于 GCC 和 GCC 版本中的每个

php - 检查一个类是否是另一个类的子类

c - 从带有输出的输入文件创建C链表

c - 如何将链表拆分为两个列表

c++ - 如何打印 C++ 应用程序中所有线程的列表?

c++ - 如何检测 WinCE C/C+ 运行时库下的泄漏?