2 return werte für Greedy-Algorithmus (gelöst)

Status
Nicht offen für weitere Antworten.

chik

Gesperrter Benutzer
Hallo zusammen,

habe eine eventuell simple Frage (hoffe sie ist nicht all zu dumm).
Wie kann ich zwei return Werte ausgeben?

Habe hier einen Greedy-Algorhitmus.
Ein Rucksack muss mit 24 Einheiten gefüllt werden, der computer soll immer das lokale Beste finden.

Funktioniert auch alles soweit, nur brauche ich noch den runner.item statt nur den Value, damit ich bzw. der Tutor auch weiß, welche Packete verwendet wurden.

By the way, weiß jemand, wieso der searchBig scheinbar immer doppelt durchläuft?
Ist nicht schlimm aber sinnlos iwie und wenns der Tutor merkt, zieht er Punkte ab.

(für den (nur) relevanten Bereich nach unten scrollen)

Code:
/**
 * Write a description of class L here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class LinkedListElemente { 
private Object item;
private Object size;
private int value;
private LinkedListElemente next; 
public LinkedListElemente() { } 

private LinkedListElemente(Object i, LinkedListElemente n) { 
    item = i; 
    next = n; 
}

public static void main(String[] args){
LinkedListElemente Alle = new LinkedListElemente();
LinkedListElemente RuckSack = new LinkedListElemente();
Alle.insertlast("A",3,4);
Alle.insertlast("B",4,5);
Alle.insertlast("C",7,10);
Alle.insertlast("D",8,11);
Alle.insertlast("E",9,13);
System.out.println("Kontrollausgabe nach dem Anlegen");
Alle.ausgeben();

int maxGroeße = 0;
}

public void test(){
LinkedListElemente Alle = new LinkedListElemente();
LinkedListElemente RuckSack = new LinkedListElemente();
Alle.insertlast("A",3,4);
Alle.insertlast("B",4,5);
Alle.insertlast("C",7,10);
Alle.insertlast("D",8,11);
Alle.insertlast("E",9,13);
System.out.println("Kontrollausgabe nach dem Anlegen");
System.out.println("Verfügbar");
Alle.ausgeben();
System.out.println("Rucksack");
RuckSack.ausgeben();
int actGroeße = 0;
System.out.println("Anfangswert Rucksackkapazität " + actGroeße);
while (actGroeße <24){
if (Alle.searchBig(actGroeße) == 25){break;};
actGroeße=actGroeße+Alle.searchBig(actGroeße);
System.out.println("Zwischen Größe " + actGroeße);
}
System.out.println("Ergebnis " + actGroeße);
}

// suche das groeßte Element
public int searchBig(int i){
int temp = 24-i;
LinkedListElemente runner = this;
if (runner.value >= temp) {System.out.println("Fertig"); return 25;};
//System.out.println("Anfangswert runner" + runner.value);
while (runner.next.value<=temp && runner.next.value!= 0)
{runner=runner.next;};
//System.out.println("Endwert runner" + runner.value);
return runner.value;
}
 
public void insertlast(Object gegenstand, Object groeße, int wert) { 
    if (item == null) { 
        item = gegenstand;
        size = groeße;
        value = wert;
        next = new LinkedListElemente(); 
    } else 
    next.insertlast(gegenstand, groeße, wert); 
}
 

public void ausgeben(){
    System.out.println("==============" + "Ausgabe" + "==============");
    LinkedListElemente runner = this;
    //Kein Element Fall
    if (runner == null) {return;};
    //Nur 1 Element Fall
    if (runner.next == null) {
        System.out.println(runner.item + "," + runner.size + "," +runner.value);
        return;}
    //Allg. Fall
    do{
    System.out.println(runner.item + " " + runner.size + "," +runner.value);
           runner = runner.next;
    }while (runner.next != null);
}
}

Interessant ist aber nur
Code:
 // suche das groeßte Element
public int searchBig(int i){
int temp = 24-i;
LinkedListElemente runner = this;
if (runner.value >= temp) {System.out.println("Fertig"); return 25;};
//System.out.println("Anfangswert runner" + runner.value);
while (runner.next.value<=temp && runner.next.value!= 0)
{runner=runner.next;};
//System.out.println("Endwert runner" + runner.value);
return runner.value;
}

Besten Dank schonmal!
 
Zuletzt bearbeitet:

André Uhres

Top Contributor
Eine Methode kann mit return nur einen einzigen Wert zurückgeben. Möchte man mehrere Werte zurückgeben, so kann dies über Referenzen auf Objekte in der Parameterliste gehen oder über die Schaffung eines Objektes mit mehreren Datenfeldern, auf das mit return eine Referenz zurückgegeben wird.
Die Methode searchBig wird doppelt durchlaufen, weil sie zweimal aufgerufen wird:
Java:
if (alle.searchBig(actGroeße) == 25) {//<-------------------------------
    break;
}
actGroeße = actGroeße + alle.searchBig(actGroeße);//<-------------------------------
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
Java:
int size = searchBig(actGroesse);
if (size == 25) {
    break;
}
actGroesse += size;

ah ja, wie du gerade merkst ist das ß nicht gerade ein tolles Zeichen in Code.
 

chik

Gesperrter Benutzer
Jo besten Dank für eure Hilfe.

Hab das jetzt realisiert, vielleicht hilft es ja jemanden:

Code:
public class LinkedListElemente { 
private Object item;
private Object size;
private int value;
private LinkedListElemente next; 
public LinkedListElemente() { } 

private LinkedListElemente(Object i, LinkedListElemente n) { 
    item = i; 
    next = n; 
}

public static void main(String[] args){
LinkedListElemente Alle = new LinkedListElemente();
Alle.insertlast("A",3,4);
Alle.insertlast("B",4,5);
Alle.insertlast("C",7,10);
Alle.insertlast("D",8,11);
Alle.insertlast("E",9,13);
System.out.println("Kontrollausgabe nach dem Anlegen");
System.out.println("Verfügbar");
Alle.ausgeben();
System.out.println("Gesamt Größe " + Alle.getSize());
int actGroeße = 0;
System.out.println("Anfangswert Rucksackfüllung " + actGroeße);
while (actGroeße <24){
    if (Alle.searchBig(actGroeße)==null){break;};
    System.out.println("Hinzugefügt " + Alle.searchBig(actGroeße).item + " mit dem Wert " + Alle.searchBig(actGroeße).value);
    actGroeße=actGroeße+Alle.searchBig(actGroeße).value;
//System.out.println("Zwischen Größe " + actGroeße);
}
System.out.println("Endwert Rucksackfüllung" + actGroeße);
}



// suche das groeßte Element
public LinkedListElemente searchBig(int i){
int temp = 24-i;
LinkedListElemente runner = this;
if (runner.value > temp) {System.out.println("Es passt nichts mehr in den Rucksack"); return null;};
while (runner.next.value<=temp && runner.next.value!= 0)
{runner=runner.next;};
return runner;
}

public int getSize(){
int x=0;
LinkedListElemente runner = this;
while (runner.next != null){
    runner = runner.next;
    x=x+runner.value;
}
return x;
}
 
public void insertlast(Object gegenstand, Object groeße, int wert) { 
    if (item == null) { 
        item = gegenstand;
        size = groeße;
        value = wert;
        next = new LinkedListElemente(); 
    } else 
    next.insertlast(gegenstand, groeße, wert); 
}
 

public void ausgeben(){
    System.out.println("==============" + "Ausgabe" + "==============");
    LinkedListElemente runner = this;
    //Kein Element Fall
    if (runner == null) {return;};
    //Nur 1 Element Fall
    if (runner.next == null) {
        System.out.println(runner.item + "," + runner.size + "," +runner.value);
        return;}
    //Allg. Fall
    do{
    System.out.println(runner.item + " " + runner.size + "," +runner.value);
           runner = runner.next;
    }while (runner.next != null);
}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
rosima26 Unterschiedliche Werte bei return/print Allgemeine Java-Themen 12
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
hdi dynamische return-Werte Allgemeine Java-Themen 15
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
I Java Optionals mit return-Block Allgemeine Java-Themen 2
R missing return statement Allgemeine Java-Themen 13
V int Array einer return Methode übergeben? Allgemeine Java-Themen 4
B XAResource[] return statement Allgemeine Java-Themen 3
V Wildcard aus Parameter in return type Allgemeine Java-Themen 2
P Return oder Global Allgemeine Java-Themen 3
W Rekursion-Probleme mit return Allgemeine Java-Themen 35
Dragonfire Code Konvention for-Schleife / return Allgemeine Java-Themen 15
B boolean return typ verwenden? Allgemeine Java-Themen 5
R return in try-catch-Blöcken Allgemeine Java-Themen 6
W return Collection mit schleife durchsuchen Allgemeine Java-Themen 10
H return bei Methode Allgemeine Java-Themen 2
M Problem mit return-werten Allgemeine Java-Themen 35
B Warum return type Object ? Allgemeine Java-Themen 4
D public boolean return Allgemeine Java-Themen 8
M return-Statement Allgemeine Java-Themen 5
S Wie Carriage Return Line Feed abfragen. Allgemeine Java-Themen 6
M java-doc: @return mehrzeilig gestalten Allgemeine Java-Themen 3
L return-Funktion Allgemeine Java-Themen 5
L return Funktion Allgemeine Java-Themen 6
G return bei generiertem code Allgemeine Java-Themen 6
S Fehler beim return eines String Arrays Allgemeine Java-Themen 3
Fredy Return by value mit String?? Allgemeine Java-Themen 6
O Werte einer Generic LinkedList zusammenrechenen Allgemeine Java-Themen 14
C In DefaultTableModel nachträglich Werte einfügen Allgemeine Java-Themen 2
berserkerdq2 Kann man in IJVM maximal 3 Werte im Stack haben? Allgemeine Java-Themen 3
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
MiMa Werte in liste speichern? Allgemeine Java-Themen 3
Drachenbauer Wie kann ich einer existierenden Enum von außerhalb veränderte Werte zuweisen? Allgemeine Java-Themen 5
Arif Math.cos liefert komische Werte Allgemeine Java-Themen 8
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
Henrithebegiinerofjava Erste Schritte Werte in Eingabefelder einlesen und wiederholen lassen. Allgemeine Java-Themen 3
I Java: public final Werte: Gute oder schlechte Praxis? Allgemeine Java-Themen 6
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
J Swing UIManager Werte Allgemeine Java-Themen 6
4 Java 2 ArrayListen Werte herauslesen/übernehmen Allgemeine Java-Themen 4
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
KeVoZ_ int Werte in einen String fassen Allgemeine Java-Themen 4
N Werte aus Hashmap auslesen und übertragen Allgemeine Java-Themen 8
2 mehrere Json Werte Parsen Allgemeine Java-Themen 3
R jTable, nur Werte zwischen 2 Double values ausgeben Allgemeine Java-Themen 3
B Übergebene Werte in Gerätedatei schreiben Allgemeine Java-Themen 2
M Exceltabelle in Java erstellen und Werte einlesen Allgemeine Java-Themen 32
N Werte aus Arrays auslesen funktioniert nicht Allgemeine Java-Themen 5
R Int werte vergleichen und Anzahl Paare ausgeben Allgemeine Java-Themen 4
O Klassen Programm in Klassen unterteilt, werte werden nicht mehr übernommen Allgemeine Java-Themen 3
R kann man irgendwie mit Arrays mit Eingabefenstern und Schleifen Werte abklappern? Allgemeine Java-Themen 2
L Windows CMD werte Parsen. Allgemeine Java-Themen 2
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
K Methoden Arrays auf true Werte prüfen Allgemeine Java-Themen 4
R Variablen per HSSF geheime Werte von JAVA an EXCEL Allgemeine Java-Themen 2
ARadauer Checksumme über BigDecimal Werte Allgemeine Java-Themen 11
C Datentypen Enum-Werte Bestanteil von anderem Enum Allgemeine Java-Themen 8
Q GregorianCalendar Methode add liefert komische Werte Allgemeine Java-Themen 3
BRoll Image RGB Werte auslesen und vergleichen Allgemeine Java-Themen 8
Madlip Variablen 3 Werte aus ArrayList und weiter ... Allgemeine Java-Themen 4
M Aus Excel Tabelle lesen und Werte in Array speichern Allgemeine Java-Themen 15
A String Array Werte in neues String Array übernehmen Allgemeine Java-Themen 5
R Zusammenhängende Werte in 2-dim. Array finden und zählen Allgemeine Java-Themen 3
S Sinnvolles skalieren von Werte-Set? Allgemeine Java-Themen 2
S Keytool: mögliche Werte für Parameter Allgemeine Java-Themen 4
P Werte in Array zählen und Summe der einzelnen Teile ausgeben Allgemeine Java-Themen 10
L Veränderbare Werte zusammenfassen Allgemeine Java-Themen 18
P Variablen Werte der Objektvariablen mit getFields() abfragen Allgemeine Java-Themen 2
O Variablen System.getenv: Sinnlose Werte, Arrays?! Allgemeine Java-Themen 6
J JSONObject Reihenfolge der Werte? Allgemeine Java-Themen 4
T java.uil.Random liefert negative Werte Allgemeine Java-Themen 2
c_sidi90 Werte an bestimmten Position aus PDF in DB sichern Allgemeine Java-Themen 2
C Vergleich von Enums gibt inkorrekte Werte Allgemeine Java-Themen 6
T Array Sortieren (null Werte ans Ende) Allgemeine Java-Themen 2
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
C aus einem String einzelne Hex Werte lesen Allgemeine Java-Themen 7
P JFormattedTextField für durch Semikolon getrennte Integer-Werte gesucht / Regulärer Ausdruck Allgemeine Java-Themen 3
M rxtx OutputStream sendet falsche werte Allgemeine Java-Themen 3
J Hex Werte in Bitmap Raster darstellen Allgemeine Java-Themen 16
E Werte übergabe Allgemeine Java-Themen 2
E Werte in andere Klasse übernehmen Allgemeine Java-Themen 8
S Bytes oder Hex-Werte zu Assembler Code? Allgemeine Java-Themen 6
D Mehrere String-Werte in eine Tabellen-Zelle schreiben Allgemeine Java-Themen 8
P Methoden und Werte Allgemeine Java-Themen 17
M Kugelschnittberechnung liefert falsche Werte Allgemeine Java-Themen 4
N unzählige Werte am besten speichern(?) Allgemeine Java-Themen 2
D Spielerwechsel über boolsche Werte läuft inkorrekt Allgemeine Java-Themen 6
MonsterBit 2 Werte aus 2 Array vergleichen Allgemeine Java-Themen 10
T Apache POI Export EXCEL - [Zahlen-Werte] Allgemeine Java-Themen 1
S Doppelte Werte in Listen,Vectoren etc suchen Allgemeine Java-Themen 2
Airwolf89 Zugriff auf Werte in ArrayList<ArrayList> Allgemeine Java-Themen 4
H Prüfen, ob doppete Werte in int-Array vorhanden sind Allgemeine Java-Themen 16
K Datenhaltungsklasse für wenige Werte? Allgemeine Java-Themen 4
T JProgressbar ändert werte nicht Allgemeine Java-Themen 28
K need help ; Werte aus einer Datei auslesen Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben