我现在已经坐了大约两天了。 我的任务是在java中创建一个左派最大d-heap。我的大纲如下:
public LeftistDHeap(int d)
public void enqueue(T element)
public T dequeue()
public String breadthFirstSearch()
public String depthFirstPreOrder()
public String depthFirstPostOrder()
public void combine(LeftistDHeap<T> other)
public boolean isEmpty()
所以我已经完成了他们在这里要求的所有功能( only not depthFirstPostOrder())。我的Node类就像一个普通的treeNode类,而不是左右,我有一个指向子节点的数组。
我无法弄清楚如何在这棵树中进行后序遍历的逻辑。我的二进制邮件搜索很简单,那么有没有办法将普通的二叉树后序算法转换为使用带有大量子项的树?
答案 0 :(得分:0)
我已经可以告诉您使用数组和泛型类型时会遇到问题。我建议您使用不同的数据结构来存储孩子。也许一个链表?我之所以这么说是因为我对COS212也有同样的任务,Fitchfork会抱怨你使用数组。至于后订单遍历,我也迷失了,因此遇到了你的问题。
我使用这个网站来帮助我完成订单后遍历:http://leetcode.com/2010/10/binary-tree-post-order-traversal.html它有很多关于如何以不同方式进行操作的好例子。祝你好运!