【发布时间】:2015-09-30 09:43:05
【问题描述】:
我正在解决一个问题,要求我为给定的接口实现多个功能。
我有一个接口是树中的单个节点,还有一个接口是树。
树节点:
package main;
import java.util.List;
public interface TreeNode<E> {
public E getElement();
public void setElement(E elem);
public void setChild(TreeNode<E> child);
public TreeNode<E> getFirstChild();
public List<TreeNode<E>> getChildren();
public void setNextSibling(TreeNode<E> sibling);
public TreeNode<E> getNextSibling();
public int size();
public int height();
public List<TreeNode<E>> getPreOrder();
public List<TreeNode<E>> getPostOrder();
public String toString(TreeNode<E> node);
}
树:
package main;
import java.util.List;
public interface Tree<E> {
public TreeNode<E> getRoot();
public int size();
public int height();
public List<TreeNode<E>> getPreOrder();
public List<TreeNode<E>> getPostOrder();
public void makeEmpty();
public boolean isEmpty();
public int height(TreeNode<E> node);
public int depth(TreeNode<E> node);
}
我被要求:
使用 last-child/previous-sibling 实现这些接口 方法。创建将扩展 Tree 和 TreeNode 的 MyTreeNode.java 和 MyTree.java。
MyTreeNode.java 定义为:
扩展 TreeNode.java 的实现。
MyTree.java 定义为:
扩展 Tree.java 的实现。
于是我开始构建MyTree.java。问题是,我不知道如何“扩展”接口和实现方法。对我来说,这听起来像是希望我实现接口并构造已定义的方法。据我所知,只有一个接口可以扩展另一个接口。
另一个问题是,如果没有适当的左右节点,我将如何创建许多这样的函数?我相信我不允许修改现有的接口(Tree.java和TreeNode.java)。
谁能帮我用通俗的话向我解释我应该做什么?
【问题讨论】:
标签: java data-structures tree elements