Die Initialisierung Einzeln Verkettete Liste Java

Ich versuche, implementieren Sie einen abstrakten Datentyp NumList in der Klasse NumLinkedList als eine einfach verkettete Liste.

public class NumLinkedList implements NumList
{

Node head;
int nItem;

private class Node
{
    public Node next;
    public double value;
    public Node(double i, Node j)
    {
        value = i;
        next = j;

    }

}

public NumLinkedList()
{
    head = null;
    nItem = 0;

}

ist meine Initialisierung, und ich habe Schwierigkeiten mit den folgenden Methoden.

public void print()
{
    Node currNode = head;
    while(currNode.next != null)
    {
        currNode = currNode.next;
        System.out.println(currNode.value);
    }

}

public int size()
{
    int size = 0;
    Node currNode = head;
    while(currNode.next != null)
    {
        currNode = currNode.next;
        size++;
        nItem++;

    }
    return size;

}

public void insert(int i, double value)
{
    if( i < 0)
    {
        System.out.println("Error. out of bounds.");
    }
    if ( i > size())
    {
        Node currNode = head;
        for(int j = 0; j < i; j++)
        {
            currNode = currNode.next;
        }
        currNode.next = new Node(value,null);
    }

    if ( i <= size())
    {
        Node currNode = head;
        for(int j = 0; j < i-1; j++) //this moves CurrNode to the i-1th node
        {
            currNode = currNode.next;
        }
        currNode.next = new Node(value,currNode.next);
    }

    nItem++;
}

wenn ich mein Test-code,

public static void main (String[] args)
{
    NumLinkedList test;
    test = new NumLinkedList();

    //System.out.println("this is how many initial items the initialized list has");
    //System.out.println(test.size());
    test.insert(1, 0.1);
    System.out.println("have tried to insert value 0.1 @ position 1, that is the first element in list.");
    test.print();
    System.out.println("tried print(). did it work?");
    test.insert(4, -1);

Bekomme ich eine Fehlermeldung in der

test.insert(1, 0.1);

Bezugnahme auf

if ( i > size())

und

while(currNode.next != null)

als ich Fehler beim initialisieren der mein array ADT als gut, ich glaube, dass meine Liste ADT ist auch falsch initialisiert. Es ist schwer zu finden, die richtigen Beispiele auf Google, irgendwelche Referenzen für ADT-Initialisierung?

InformationsquelleAutor user1702633 | 2012-09-27
Schreibe einen Kommentar