tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
817
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Hunter3 Hunter3 ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    12
    guten abend,

    ich verzweifle langsam ich sitze jetzt seit 2 1/2 stunden an diesem mini programm und finde den fehler nicht
    es geht darum das die zahlen die der benutzer eingibt in einem objekt gespeichert werden was wiederum eine referenz aufs nächste objekt enthält also eine einfache verkettete liste
    es kommt KEINE fehlermeldung sondern das programm tut einfach nicht das was es tun soll
    es gibt nur die erste und letzte zahl aus

    danke schonmal im voraus

    hier mal der code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    
    import java.io.*;
    import java.util.Scanner;
     
     
    public class JavaKlassenTest
    {
     
        public static void main(String[] args) 
        {
            Scanner in = new Scanner(System.in);
            String s;
            int i;     
            int zahl = 0;
            boolean check = true;
     
     
            ZAHLEN zahl_current = null;
            ZAHLEN zahl_buffer = null;
            ZAHLEN erstesobjekt = null;
           
     
            while(true)
            {
                System.out.println("Bitte eine Aktion eingeben !");
            
                s = in.next();
            
                if(s.equals("neu"))
                {
                    while(zahl != 999)
                    {
                        System.out.println("Nummer ");
                        zahl = in.nextInt();
     
                        if(erstesobjekt != null)
                        {                        
                            zahl_current = new ZAHLEN(zahl);
                            zahl_buffer.next = zahl_current;                        
                            zahl_current.next = null;
                        }
                        else
                        {                       
                            erstesobjekt = new ZAHLEN(zahl);
                            zahl_buffer = erstesobjekt;
                        }
                    }
                    
                }
     
                if(s.equals("lesen"))
                {
                    zahl_current = erstesobjekt;
                    while(zahl_current.next != null)            
                    {
                        
                        System.out.println("Zahl: " + zahl_current.stnummer);
                        zahl_buffer = zahl_current.next;
                        zahl_current = zahl_buffer;
                    }
                }
            }
        }
     
        public static class ZAHLEN
        {
            ZAHLEN next;
            int    stnummer;
            
            public ZAHLEN(int nummer)
            {
                stnummer = nummer;
            }                    
        }
        
    }
     

  2. #2
    RobinHeinrich RobinHeinrich ist offline Grünschnabel
    Registriert seit
    Apr 2004
    Beiträge
    1
    Es ist schon spät und ich bin hundemüde, aber mir scheint du hast da einen Denkfehler drin bei der Zuweisung des Next-Links.

    erstesobjekt.next bekommt nichts zugewiesen.

    Ich denke du suchst einen Weg das letzte Objekt zuzuweisen, aber das ist schon weg. An deiner Stelle würde ich mit Klassen arbeiten.
    Schau dir mal folgenden Beitrag an:
    http://www.tutorials.de/java-grundla...-tauschen.html

    Ein bisschen formatiert und das ganze ergänzt, wird zu:

    <code>

    public class HauptKlasse{

    public static void main(String args[]) {

    ListenElement liste = new ListenElement("1");

    for(int i=2; i<11; i++){
    liste.addElement(new ListenElement(""+i));
    }

    //Hier startet dann die Ausgabe

    while (liste.next != null) {
    System.out.println(liste.daten);
    liste = liste.next;
    }
    }

    static class ListenElement{

    ListenElement next=null;

    String daten;
    int index = 0;

    ListenElement(String neueDaten){
    daten=neueDaten;
    index =index++;
    }

    // hier wird ein element am ende der Liste angehängt.
    void addElement(ListenElement element) {
    if(next!=null){
    next.addElement(element);
    } else {
    next = element;
    }
    }
    }
    }

    </code>

    Der Index ist momentan noch für nichts zu gebrauchen, aber im Beitrag steht ja auch, dass die Klasse noch erweitert werden soll mit Positionsvertauschung.

    Gruß Rob
     

  3. #3
    Hunter3 Hunter3 ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    12
    danke für die antwort vorallem um die uhrzeit hab das ganze jetzt mal ausprobiert und funktioniert
    thx nochma
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 17.10.10, 16:57
  2. Java verkettete Liste Elemente tauschen
    Von Doofkatze im Forum Java Grundlagen
    Antworten: 1
    Letzter Beitrag: 12.04.09, 11:48
  3. verkettete Liste
    Von neuling5 im Forum VisualStudio & MFC
    Antworten: 5
    Letzter Beitrag: 24.05.07, 11:45
  4. Antworten: 4
    Letzter Beitrag: 01.10.06, 18:04
  5. verkettete Liste
    Von rapier im Forum PHP
    Antworten: 0
    Letzter Beitrag: 13.01.05, 16:37