Avatar billede shemeri Praktikant
21. november 2001 - 22:46 Der er 7 kommentarer og
1 løsning

LinkedList i Java

Er der nogen der kan hjælpe mig med LinkedList. Jeg kan ikke få den til at køre correct. Den bliver ved med at læse kun sidste element og ikke mere selvom der er 7 elementer på listen.
Koden ser sådan ud:
------------------------------
class LinkedList {      // LinkedList ADT + Dummy Header Node.
  public int nodes=0;
  private LLNode head, current, next;

  // Constructor.
  public LinkedList() {
      head = new LLNode(\"Route\");
      current = head;
      }

  // Accessors.
  public boolean isEmpty() {
      return head.next==null;
      }

  public boolean isLast(){
      return current.next==null;
      }

  public Object retrieve() {
      current.element = head.next.element;
      return current.element;
      }

  public Object retrieveNext() {
      return current.next.element;
      }


  public Object readNext(){
      return current.next;
      }

  public boolean hasNext(){
    current = head.next;
    if (current.next != null)
      return false;
    else
      return true;
      }

  /*public void first() throws ItemNotFound {
    current=head.next; if (current==null) throw new ItemNotFound(\"LinkedList: No first element.\");
    }*/


// Mutators.
  public void insertNext(Object element) {
    // Inserts an element into the next position but does NOT advance the list.

    //if (current != null) {
      current.next = new LLNode(element, current.next = head.next);
      nodes++;

  // }
  // else System.out.println(\"LinkedList: Unable to insert new node.\");
  }

  public void deleteNext() {
    if ((current!=null) && (current.next!=null)) {
        current.next = current.next;
        nodes--;
    }
    else System.out.println(\"LinkedList: Unable to delete next node.\");
  }


}


class LLNode {
  public Object element;
  public LLNode next;

  // Constructors.
  public LLNode(Object s) {element=s; next=null;}
  public LLNode(Object s, LLNode n) {element=s; next=n;}
}


public class LinkedListTesterNode {
  public static void main(String args[]) {
    LinkedList route1 = new LinkedList();
    route1.insertNext(\"1\");
    route1.insertNext(\"2\");
    route1.insertNext(\"3\");
    route1.insertNext(\"4\");
    route1.insertNext(\"5\");
    route1.insertNext(\"6\");
    route1.insertNext(\"7\");


    System.out.println(\"There are \"+route1.nodes+\" Segments in Route 1\");

//if (route1.hasNext()){
    System.out.println(\"Results are \" + route1.retrieve());
    System.out.println(\"Results are \" + route1.retrieveNext());
    System.out.println(\"Results are \" + route1.retrieveNext());
    System.out.println(\"Results are \" + route1.retrieveNext());

// }//end if

}
}
----------------------------------------
håber at få svar...

tak
Avatar billede frosig Nybegynder
21. november 2001 - 23:13 #1
Du beder den aldrig om at skrive andet end det ene objekt ud. Du kan bruge en toString-metode til at udskrive alle elementer i din liste. Den kan se sådan her ud:

public String toString() {
  String s = \"\";
  LLNode current = head;
     
  while (current != null) {
    s += current.element + \"\\n\";
    current = current.next;
  }
  return s;
}

Så kan du bare sige System.out.println(route1) i din main-metode.
Avatar billede shemeri Praktikant
21. november 2001 - 23:34 #2
yes, tak skal du have frosig.......... 1000 tak :)
Avatar billede shemeri Praktikant
21. november 2001 - 23:42 #3
hvad så hvis jeg vil bruge retrieveNext() metoden hvor jeg kan læse elementer trinvis...?!
Avatar billede logical Nybegynder
22. november 2001 - 06:59 #4
Hvis det skulle have virket ordentligt, skulle det nok have heddet:

public Object retrieve() {
      current = head;
      return current.element;
      }

  public Object retrieveNext() {
      current = current.next;
      return current.element;
      }
Avatar billede shemeri Praktikant
23. november 2001 - 02:13 #5
1000 tak logical.
nu virker det.
tak for hjælpen
Avatar billede leif4 Nybegynder
24. november 2001 - 19:50 #6
Hej er der en af jer som kunne tænke sig at lave noget java-programmering, det vil dreje sig om ca. 8 timer alt efter hvordan det driller -det er selvfølig mod betaling
Avatar billede frosig Nybegynder
24. november 2001 - 23:33 #7
Det kan vi sikkert godt finde ud af, men hvad er det, som du skal have programmeret?
Avatar billede leif4 Nybegynder
25. november 2001 - 00:47 #8
Giv mig din mail på leif4@post.opasia.dk,
så skal jeg give dig nogle flere oplysninger
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester