需要有关创建Node类(java)的指导?

时间:2017-01-30 08:54:16

标签: java nodes

我需要实现一个Node类,其基本方法是:getItem(),getNext(),setItem()和setNext()。我希望节点能够在Java中至少存储默认的整数范围作为“项目”; “next”应该是链接列表中下一个节点的引用或指针,如果这是列表中的最后一个节点,则应该是特殊节点NIL。我还想实现一个双参数构造函数,它使用给定的初始化实例item(第一个参数)和下一个节点(第二个参数),我有点打砖墙,需要一些关于实现这个,任何想法的指导?

到目前为止,我有这个:

class Node {


public Node(Object o, Node n) {

}
public static final Node NIL = new Node(Node.NIL, Node.NIL);

public Object getItem() {
    return null;
}
public Node getNext() {
    return null;
}
public void setItem(Object o) {

}
public void setNext(Node n) {

}
}

3 个答案:

答案 0 :(得分:1)

在实现自定义LinkedList / Tree时,我们需要Node。这是创建Node和LinkedList的演示。我没有把所有的逻辑都放进去。只是基本的骨架在这里,然后你可以在自己身上添加更多。

enter image description here

答案 1 :(得分:0)

我可以快速提示你如何做到这一点:

{% for organization in organizations %}
    {
        value: {{ organization.value }},
        color: "#F56954",
        label: "{{ organization.name }}"
    },
{% endfor %}

您可以通过调用:

来创建Node对象
Class Node{

    //these are private class attributes, you need getter and setter to alter them.
    private int item;
    private Node nextNode;

    //this is a constructor with a parameter
    public Node(int item)
    {
        this.item = item;
        this.nextNode = null;
    }

    // a setter for your item 
    public void setItem(int newItem)
    {
        this.item = newItem;
    }

    // this is a getter for your item
    public int getItem()
    {
        return this.item;
    }   

}

对于您的问题,这不是一个完整的解决方案,缺少两个参数构造函数和最后一个节点链接,但这应该会引导您找到正确的方向。

答案 2 :(得分:0)

下面是Node实现的一个简单示例(为了便于阅读,我将Item重命名为Value)。它必须以某种方式实现,因为方法签名似乎是强加给你的。但请记住,这绝不是实现LinkedList的最佳方式。

public class Node {
    public static final Node NIL = null;
    private Integer value;
    private Integer next;

    public Node(Integer value, Node next) {
        this.value = value;
        this.next = next;
    }

    public Integer getValue() {
        return this.value;
    }
    public Node getNext() {
        return this.next;
    }

    public void setValue(Integer value) {
        this.value = value;
    }

    public void setNext(Node next) {
        this.next = next;
    }

    public boolean isLastNode() {
        return this.next == Node.NIL || Node;
    }
}


public class App {
    public static void main(String[] args) {
        Node lastNode = new Node(92, Node.NIL);
        Node secondNode = new Node(64, lastNode);
        Node firstNode = new Node(42, secondNode);

        Node iterator = firstNode;
        do () {
            System.out.println("node value : " + iterator.getValue());
            iterator = iterator.getNext();
        } while (iterator == null || !iterator.isLastNode());
    }
}