Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern

Poly

Mitglied
Hallo Ihr Lieben,

ich muss eine Liste mit zufälligen Integer sortieren. Das funktioniert soweit auch ganz gut bis der Randomwert gößer als 1000 ist, denn dann gibt es keine Konsolenausgabe mehr.

Datentyp
Java:
/**
* Binärbaum
* Klasse die einen Binärbaum mit den Werten [Value, left Arm, right Arm] erstellen kann
* @author ******
*
*/
public class Node {
    public Node left;
    public Node right;
    public int value;
    /**
     * Konstruktor
     * @param v Integer gibt einn ganzzahligen Inhalt an
     * @param l Linker Ast des Baumes
     * @param r rechter Ast des Baumes
     */
    public Node (int v, Node l, Node r){
        value = v;
        left = l;
        right = r;
    }
    /**
     *  Wandelt den Node in einen Sting um.
     */
    public String toString() {
        return value + " ";
    }
}

Das ist meine Main
Java:
import java.util.LinkedList;
import java.util.List;

public class binsort {
    public static void main (String[] args){
        List<Integer> liste = new LinkedList<Integer>();
        for (int j = 1; j <= 1000; j++) {
        liste.add((int)(100000 * Math.random()));
        }/*
        List<Integer> liste1 = new LinkedList<Integer>();
        */
        System.out.println(binSort(liste));       
    }
       
    /**
     * Sortiert eine Liste von klein nach groß.
     * @param liste die Sortiert werden soll.
     * @return Giebt die Sortierte Liste zurück als String.
     */
    private static String binSort(List<Integer> liste) {
        if (liste.isEmpty()){
            return "Die Liste ist Leer";
        }
        Node tree = new Node(liste.remove(0), null, null);
        for(int i : liste) {
            insert(i, tree);
        }
        return inorder(tree);
    }

    /**
     * Fügt einem Binärbaum einen Wert hinzu. Mit der Regel Kleiner als Wurzel links einfügen und gräßer die Wurzel Rechts einfügen
     * @param v Integer Der Wert für den Knoten.
     * @param tree Node der einen Binärbaum benötigt.
     */
    public static void insert(int v, Node tree){
        if(tree == null){
            return;
        }
        if (tree.value == v){
            return;
        }
        if (v < tree.value){
            if (tree.left == null) {
                tree.left = new Node(v, null, null);
            } else {
                insert(v, tree.left);
            }
        }
        if (v > tree.value){
            if (tree.right == null) {
                tree.right = new Node(v, null, null);
            } else {
                insert(v, tree.right);
            }
        }
    }
    /**
     * Gibt einen Binärbaum als String zurück.
     * @param n Node der einen Binärbaum benötigt.
     * @return String Gibt den Binärbaum als String von links nach rechts Zurück.
     */
    public static String inorder(Node n){
        if (n == null) {
            return "";
        }
        return inorder(n.left) + n + inorder(n.right);
    }
}

Woran kann das liegen?

Mfg Poly
 

Joose

Top Contributor
@JStein52 die Zeile sorgt doch nur dafür das maximal 1000 Zufallszahlen generiert wird.

Bekommst du gar keine Ausgabe?
Hast du schon kontrolliert ob deine Liste befüllt ist bevor du "binSort" aufrufst?
Hast du schon den Debugger deiner IDE benutzt (falls eine verwendet wird)?
Wenn du keine IDE benutzt kannst du auch Dummy Konsolenausgaben in dein Program geben.
 

Poly

Mitglied
Die Liste wird korrekt befüllt (laut Debugger).
Soweit ich den Debugger verstehe, wird der ausgabe String nur mit Leerzeichen befüllt. Die Zahlen werden irgendwie ignoriert.
Wie gesagt bei kleineren Zahlen bis 1000 fügt er die Zahlen ohne Probleme an.
Ich arbeite mit Eclips Mars.1 Release (4.5.1) auf einem Surface 3

1.jpg


https://picload.org/view/wdccogo/1.png.html

2.jpg


https://picload.org/view/wdccogc/2.png.html

Lg
 

Joose

Top Contributor
Wie gesagt bei kleineren Zahlen bis 1000 fügt er die Zahlen ohne Probleme an.

Heißt egal ob du "100000" oder "1000" verwendest, bei beiden (Varianten) werden Zufallszahlen generiert und in die Liste geschrieben.
Bei beiden(Varianten) werden die Zufallszahlen bis 1000 korrekt ausgegeben, bei "100000" fehlen aber alle Zahlen > 1000?
 

Poly

Mitglied
Heißt egal ob du "100000" oder "1000" verwendest, bei beiden werden Zufallszahlen generiert und in die Liste geschrieben.
Ja.

Bei beiden werden die Zufallszahlen bis 1000 korrekt ausgegeben, bei "100000" fehlen aber alle Zahlen > 1000?
Nein nicht ganz:
Bei den Zufallszahlen bis
List<Integer> liste = new LinkedList<Integer>();
for (int j = 1; j <= 1000; j++) {
liste.add((int)(1000 * Math.random()));
}
funktioniert das Programm so wie ich es geschrieben habe.

Aber bei den Zufallszahlen bis
List<Integer> liste = new LinkedList<Integer>();
for (int j = 1; j <= 1000; j++) {
liste.add((int)(100000 * Math.random()));
}
Werden nur Leerzeichen ausgegeben.

Kann man das verstehen, tut mir leid falls ich etwas kryptisch schreibe.

In beiden Fällen nimmt er ja 1000 zufällige Werte, in dem ersten ist es 1000 Werte zischen 1-1000 und in dem nicht funktionierenden Fall ist es 1000 Werte zischen 1-100000.

Lg
 

Joose

Top Contributor
Ok, ich war mir eben nicht ganz sicher ob im 2.Fall jetzt nur keine Werte > 1000 ausgegeben werden oder gar keine Werte.
Deswegen die genaue Nachfrage (um Missverständnisse zu vermeiden)

EDIT: Habe den Code mal bei mir ausgeführt und bekomme alle Zahlen ausgegeben :) egal ob bis 1000 oder bis 1000000
 

Poly

Mitglied
Okay danke, dann liegt der Fehler offensichtlich bei meinen Einstellungen, oder ähnliches. Ich versuche das bis Freitag zu lösen um abschließend meine Lösung zu Posten.

Lg
 

Meniskusschaden

Top Contributor
Interessantes Phänomen. Tritt bei mir auch auf (in der Eclipse-Konsole). Wenn ich die vermeintlichen Leerzeichen markiere und in einen Texteditor kopiere, sieht es dort vernünftig aus. Wenn ich sie stattdessen in einen Java-Editor von Eclipse kopiere, erscheinen eine Menge Leerzeichen und zum Schluß die letzten sortierten Zahlen (ca. zehn, sind nicht immer gleich viele). Habe keine Erklärung. Meine erste Vermutung war, dass Eclipse ein Problem mit der Darstellung langer Strings hat. Wenn man aber in der toString-Methode der Klasse Node die Stringkonvertierung nicht mittels Leerzeichen macht, sondern beispielsweise mit einem Punkt, ist es lesbar.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
I Listen sortieren bei mehreren Listen zu einer Java Basics - Anfänger-Themen 2
S Listen Objekte nach LocalDateTime sortieren Java Basics - Anfänger-Themen 2
G 2 Listen kombinieren und nach abc sortieren Java Basics - Anfänger-Themen 9
G Listen sortieren Java Basics - Anfänger-Themen 3
T Listen sortieren Java Basics - Anfänger-Themen 4
H Sortieren von Listen Java Basics - Anfänger-Themen 8
M kompliziertes Problem mit Listen sortieren Java Basics - Anfänger-Themen 5
N sortieren zweier abhängiger array listen Java Basics - Anfänger-Themen 12
D Listen in Listen in Listen ... ??? Java Basics - Anfänger-Themen 2
XWing listen Java Basics - Anfänger-Themen 7
FunkyPhil94 addLast und addFirst bei Listen Java Basics - Anfänger-Themen 6
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
S Lineare listen verkettung Java Basics - Anfänger-Themen 7
S Listen Java Basics - Anfänger-Themen 12
S Listen , Nodes am ende anängen Java Basics - Anfänger-Themen 6
M Java Listen Java Basics - Anfänger-Themen 4
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
A PhoneBook mit verketteten listen Java Basics - Anfänger-Themen 48
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
G Java Listen und Iterator Java Basics - Anfänger-Themen 2
S Erklaerung Listen Java Basics - Anfänger-Themen 27
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
L Skip Listen Java Basics - Anfänger-Themen 5
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
L Wie testet man (selbstgeschriebene) Listen sinnvoll? Java Basics - Anfänger-Themen 2
F Problem mit Listen Java Basics - Anfänger-Themen 5
J Listen Operationen Java Basics - Anfänger-Themen 4
O Unterschied Arrays, Listen, Mengen Java Basics - Anfänger-Themen 24
J Eine Liste von Listen erstellen Java Basics - Anfänger-Themen 11
A Sortierte Listen Java Basics - Anfänger-Themen 4
L Datenstrukturen/ Listen Java Basics - Anfänger-Themen 17
A Was könnten typische Prüfungsaufgaben zum Thema lineare, verkettete Listen sein? Java Basics - Anfänger-Themen 5
L Listen und Felder Java Basics - Anfänger-Themen 2
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
R Arrays und Listen Java Basics - Anfänger-Themen 1
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
F Multidimensionale Listen Java Basics - Anfänger-Themen 3
F Wie String in unterschiedliche Listen teilen Java Basics - Anfänger-Themen 7
T Objekte in Listen vererben Java Basics - Anfänger-Themen 3
A Klassen Klassen und Listen... Java Basics - Anfänger-Themen 5
Hacer Operationen einfach verketteter Listen Java Basics - Anfänger-Themen 22
S Methoden Vergleichen von zwei Listen in der Geschwindigkeit von O(n+m) Java Basics - Anfänger-Themen 32
C Listen Java Basics - Anfänger-Themen 3
C Zwei Listen verbinden Java Basics - Anfänger-Themen 1
C Zahlen merken mit Hilfe von Arrays/Listen Java Basics - Anfänger-Themen 2
E Feld von verketteten Listen Java Basics - Anfänger-Themen 11
T Überprüfung einer Aufgabe zu verketteten Listen Java Basics - Anfänger-Themen 5
S Liste mit Objekten und Listen Java Basics - Anfänger-Themen 9
JarJarBigs Frage zu Listen Java Basics - Anfänger-Themen 2
N verkettete Listen Java Basics - Anfänger-Themen 4
O Listen sort-Methode Java Basics - Anfänger-Themen 1
L Lineare Listen Java Basics - Anfänger-Themen 2
D Methoden Listen generieren Java Basics - Anfänger-Themen 4
A Sichtbarkeit in Methoden/Listen Java Basics - Anfänger-Themen 3
M verkettete Listen Java Basics - Anfänger-Themen 1
D Klausur Vorbereitung: Listen, Rekursion, Bäume & Vererbung Java Basics - Anfänger-Themen 3
S Vergleich von Listen Java Basics - Anfänger-Themen 6
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 2
M Listen erstellen mit unterschiedlichen Reihenfolgen Java Basics - Anfänger-Themen 3
I Zwei Listen vergleichen bei n:m Beziehung Java Basics - Anfänger-Themen 2
I Zwei Listen: Wenn nicht vorhanden löschen Java Basics - Anfänger-Themen 4
I Prüfen von zwei Listen Java Basics - Anfänger-Themen 1
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
S Unsortierte Listen - Frage zur "Verkettung" Java Basics - Anfänger-Themen 1
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 7
I Listen, for - Schleifen Java Basics - Anfänger-Themen 8
P Listen Size stimmt nicht Java Basics - Anfänger-Themen 5
O Objekt Listen serialisierung und deserialisieren Java Basics - Anfänger-Themen 5
L Collections Objekte in Listen speichern Java Basics - Anfänger-Themen 3
D Annonyme Innere Klasse: Listen mit geradem Index ausgeben Java Basics - Anfänger-Themen 6
G Generic und Listen Java Basics - Anfänger-Themen 8
R SQL ähnlicher Filter für Java Listen Java Basics - Anfänger-Themen 2
Y Collections 4 Listen Java Basics - Anfänger-Themen 14
S OOP/ Listen...etc... Java Basics - Anfänger-Themen 14
E Listen Java Basics - Anfänger-Themen 2
V Methoden Verkettete Listen Index eines Elementes ausgeben Java Basics - Anfänger-Themen 10
B Listen Java Basics - Anfänger-Themen 3
B eigene klasse in listen eintragen Java Basics - Anfänger-Themen 6
B Map per Listen Java Basics - Anfänger-Themen 2
S Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten Java Basics - Anfänger-Themen 10
Joew0815 Problem mit Listen: add() Java Basics - Anfänger-Themen 11
P Zeichenorientierte & Serialisierte Datenverarbeitung Listen Java Basics - Anfänger-Themen 8
E Listen und Generics Java Basics - Anfänger-Themen 9
L dynamisches erzeugen von array Listen Java Basics - Anfänger-Themen 7
E Listen und Duplikate Java Basics - Anfänger-Themen 2
R Hilfe bei Listen Java Basics - Anfänger-Themen 10
F Collections Liste von Listen Java Basics - Anfänger-Themen 21
A Methoden Anfängerfrage: 2 Listen Vergleichen Java Basics - Anfänger-Themen 7
walker23m C++ Listen iteratoren in Java umwandeln Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben