我是datastructure的新手。我正在尝试使用Linked List实现二叉树。
我需要做一些澄清才能实现它。
i)在树中插入一个新值,我们是否应该在实现它时进行回溯和Tree遍历。
ii)请建议我搜索和删除值的案例。
iii)请告诉我实施所有类型树木的正确材料。
答案 0 :(得分:1)
您的关联列表应显示如下内容:a->b->c->d->e->f-> ...
你的树最后会看起来像那张照片。
其中a是左子b和右子c的根。 b已离开孩子d和右孩子e,c只有左孩子f。
i)您可以将新值放在链接列表的末尾。无需前往树
ii)我假设您的树不是已排序的二叉树。因此,要搜索值k,您需要浏览整个链接列表。这将花费O(n)作为你的时间。
要删除变量,您可以删除链接列表中的节点,一切都将被移动。所以例如在上图中如果删除d,你可以在图片中看到f将替换d的结果。
iii)你能指出你所有类型树的意思吗?
希望这有帮助。