2013-05-06 102 views
-2

指向汽车对象(包含我的数据)的指针存储在BST的我的节点中。C++存储指向BST节点中的对象的指针

车基类有派生类的电,汽油和柴油

我怎么可以搜索汽车的特定类型的树与该对象指针的关键? car.cpp中需要包含哪些内容?

struct node 
{ 

Car *ptr 
node *left 
node *right 

} 
+2

您需要某种排序条件来首先构建树。您使用相同的标准进行搜索。 – juanchopanza 2013-05-06 16:58:12

+0

确实。我猜左边的节点会分支到'电动的',右边的节点会分支到'石油',它的分支是'汽油'和'柴油'。从这一点来看,这将是微不足道的(当你进行搜索时,你会保存状态) – 2013-05-06 17:00:27

+0

在平衡树方面如何工作?你会平衡每个子树(电和油) – user2355449 2013-05-06 17:12:00

回答

0

如果您只将数据存储为指针(使用BST逻辑),然后想要搜索,则不能。指针不包含关于对象内容的附加信息。两个对象可以是相同的,但它们的指针是不同的。 你将不得不改变BST插入机制。最好的方法是从你的对象中散播一些散列。但是对于这种情况,BST并不是一个很好的结构.HashMaps更好。

+0

指针指向一个汽车对象,它有像make模型等东西。我知道你的意思。谢谢 – user2355449 2013-05-06 17:27:45