我想知道是否可以将索引节点插入到已经在此树内的索引号的树中,而不会花费太多。例如,如果我有索引编号为1到10的树节点,并且我想插入应该具有索引编号8的节点。那么它是一种方法,例如以某种方式重组该树或者我必须增加值9和10?如果还有其他方法而不是递增我应该如何在这个树中放置索引?
答案 0 :(得分:0)
如果你有自己的结构,你可以像任何其他节点一样插入它。除非您在插入过程中看到相同的键时执行某些特殊操作,否则它应该可以工作。
根据您为比较设置的条件,它将结束于等值节点的左侧或右侧(如果您的树以某种方式平衡自身,则可能会更改)。显然,他们不会是左/右孩子,但会插入该子树中的某个地方。你的情况应该是(if <= go left else go right
,你不能拥有if < go left ; if > go right
,因为现在你有第三个相等的案例。)
不要指望查找工作(您需要处理一系列值,而不仅仅是单个节点)。
如果您使用C ++ map
或set
,请参阅multimap
或multiset