嗯,我有一個非常簡單的問題,我似乎無法找到解決我的路......在Java中使用
對於一類,我不得不實施具有二叉樹的接口方法如:
public List<Node<E>> listAll();
我們需要有一個名爲MyNode.java的類,這是我用來製作我的樹的類。因此,要列出我想我會做這一切的孩子:
public List<Node<E>> listAll(){
List<Node<E>> childList = new ArrayList<>();
MyNode<E> thisNode = this.l;
while(thisNode!= null){
childList.add(thisNode);
thisNode = thisNode.l;
}
return childList;
}
和等設定的孩子
public void setChild(Node<E> child){
E elem = child.getElement();
MyNode<E> newNode = new MyNode(elem);
this.l = newNode;
}
所以我的問題是做一些事情:我要對這個正確?如果我嘗試創建一個節點,我不能因爲我的節點被稱爲MyNodes,但是當我嘗試創建MyNodes列表並返回它們時,它會給我一個錯誤,因爲我沒有遵循界面。當我嘗試製作該方法接受MyNode而不是Node,它說我沒有跟隨接口。下面多一點澄清..
我目前正在使用的工具聲明來實現Node.java接口。當我寫的是由我的接口指定爲方法:
public void setChild(Node<E> child);
然後我我目前充實的方法,像這樣:
public void setChild(Node<E> child) {
E elem = child.getElement();
MyNode<E> newNode = new MyNode<E>(elem);
MyNode<E> transNode = this.l;
if(transNode!=null){
while(transNode.r!=null){
transNode = transNode.r;
}
transNode = newNode;
}
else transNode = newNode;
}
你可以看到我是如何得到從輸入子元素,創造一個新的MYNODE出它把作爲新的孩子,而不是僅僅注入節點到我的樹這是錯的嗎?我似乎無法獲得另一種工作方式......