Besoin de conseils sur la création d'une classe de nœud (java)?


J'ai besoin d'implémenter une classe Node, où les méthodes de base sont: getItem(), getNext(), setItem() et setNext(). Je veux que les nœuds puissent stocker au moins la plage d'entiers par défaut en Java en tant qu ' "élément"; le "suivant" doit être une référence ou un pointeur vers le nœud suivant dans une liste chaînée, ou le nœud spécial NIL s'il s'agit du dernier nœud de la liste.Je veux également implémenter un constructeur à deux arguments qui initialise les instances avec l'élément donné (premier argument) et le nœud suivant (second argument), j'ai en quelque sorte frappé un mur de briques et j'ai besoin de conseils sur la mise en œuvre de cela , des idées ?

J'ai ceci jusqu'à présent:

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) {

}
}
Author: J CENA, 2017-01-30

3 answers

Lors de l'implémentation de la LinkedList/Tree personnalisée, nous avons besoin de Node. Voici la démo de la création de Node et LinkedList. Je n'ai pas mis toute la logique. Juste squelette de base est ici et vous pouvez ensuite ajouter plus sur vous-même.

entrez la description de l'image ici

 1
Author: Rajat Chandak, 2017-01-30 09:09:58

Je peux vous donner un indice rapide sur la façon de le faire:

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;
    }   

}

Vous pouvez créer un objet Node en appelant:

Node newNode = Node(2);

Ce n'est pas une solution complète pour votre problème, les deux constructeurs de paramètres et le dernier lien de nœud sont manquants, mais cela devrait vous conduire dans la bonne direction.

 0
Author: Stefan Lindner, 2017-01-30 09:08:58

Ci-dessous est un exemple simple de l'implémentation du nœud, (j'ai renommé Item en Value à des fins de lisibilité). Il doit être implémenté d'une manière ou d'une autre, car les signatures de méthodes semblent vous être imposées. Mais gardez à l'esprit que ce n'est certainement pas la meilleure façon d'implémenter une 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());
    }
}
 0
Author: Anthony Raymond, 2017-01-30 09:24:50