Java Binärbaum in bestimmter Reihenfolge in Array übertragen?

...komplette Frage anzeigen

1 Antwort

Dein Problem ist, wie du mit Referenzen umgehst:

private void test() {
  int meineZahl = 0;
  test(meineZahl);
  System.out.println(meineZahl);
}

private void test(int zahl) {
 zahl++;
}

Hier wirst du feststellen, dass das Ergebnis die 0 ist.

Entsprechend hättest du mehrere Möglichkeiten:

1. Du  änderst den Returntype deiner "Hilfsmethode" zu int ab und lässt dort den neuen Index zurück geben, welchen du entsprechend setzen könntest:

i = volkszaehlung(spitze.getRechts(), v, Kingdom, i);

2. Du erstellst dir eine Hilfsklasse,  in der du die Informationen Speicherst und reichst es an deine Hilfsmethoden durch:

class Position {
  int index;

  public Position(int index) {
     this.index = index;
  }
  
 public void increment() {...};
}

Wovon du einmalig eine Instanz bildest und die Referenz davon an deine Methoden durchreichst um beispielsweise hoch zu zählen oder den Index abzufragen.

Theoretisch, sofern die Sortierung nach diesem Prinzip nicht deine Hauptaufgabe sein sollte, könntest du die Array erstmal 'einfach so' füllen und dann einfach via Comparator sortieren lassen.

Den Comparator müsstest du sowieso ausformulieren, aber das würde so aussehen:

Collections.sort(Arrays.asList(persons), new Comparator{ .... });

Was möchtest Du wissen?