我们都知道我们应该使用列表,双端队列或其他对象而不是使用经典链接列表,但我想的方式是链接列表。
我有一种我称之为ABC的类型。我可以通过ABC root
访问所有内容。 ABC类型可以容纳0个或多个ABCs。它还可以保持DE,FGH,D,E,F,G,H型.DE也可以保持D型和E型.FGH可以保持FG,F,G,H。FG认为......你明白了。这些对象也可以包含0或多个该类型及其子类型。
我面临的问题是如何以一种方式写这个,如果我在F型,我可以调用parent()并回到根类型ABC?让我们忘记现在的类型,并假设一切都是类型BASE。我如何用C ++编写这个树?我在考虑做这样的事情
class Base{
deque<Base*> children
Base*parent;
}
但这感觉就像一个链接列表。主要是因为走在树上只是看指针之后的指针,这正是链接列表的作用,走在树上是指针后的指针。有没有一种有效的方法来保持树木和走路?我的应用程序是CPU和内存绑定所以我不知道我想做哪个权衡。我如何保存这些数据?
答案 0 :(得分:1)
呃,哇?我们都知道我们应该使用列表或其他对象而不是使用 经典链接列表
链接列表没有最大的用途evar,但是当你需要类似你拥有的东西时,这是一个DAG,那么几乎没有别的方法可以做到。
只需使用指针。