Aus Array einen Heap erstellen

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo,

kann mir jemand helfen? Ich komm allein mal wieder nicht drauf. Und zwar möchte ich folgendes machen:

* Anders als sonst in Java wird das Array a[] ab dem Index 1 betrachtet
* (der Wert a[0] wird ignoriert); das letzte Element wird unter
* dem als Parameter übergebenen Index "last" gefunden. Der Feldindex
* repräsentiert somit die Knotennummer des Baums.
*
* Die Methode erzeugt schrittweise einen vollständigen,
* linkslastigen Binärbaum (noch keinen Heap!);
* d.h. a[1] wird zur Wurzel, a[2] zum linken Sohn der Wurzel,
* a[3] zum rechten Sohn, a[4] zum linken Sohn des Elements mit a[2] usw.
*
* Der Schlüssel wird im Knoten unter dem Attribut key
* abgelegt, die Knotennummer (also der Index des Felds)
* wird unter dem Attribut no abgelegt.
* Zur Erzeugung eines neuen Knotens dient der
* Konstruktor public Node(int key, int no), z.B.
* Node n = new Node(a, i);
*
* Eine (nicht sehr effiziente, aber einfache) Lösungsidee
* ist folgende: die Knoten werden nacheinander
* (beginnend bei der Wurzel) eingefügt;
* für jeden neuen Knoten wird der (schon eingefügte)
* Vaterknoten anhand seiner Knotennummer gesucht.
* Dann wird der neue Knoten rechts oder links
* unter dem Vater eingefügt.

So weit bin ich gekommen. Nun weiß ich nicht, wie ich weiter komme, dass ich immer das linke und rechte Kind unter die Wurzel hänge?

Code:
  public void toTree(int[] a, int last){
 this.root = new Node(a[1], 1);
       
        for (int i=2;i<=last;i++){
            Node n = new Node(a[i], i);
    
        }
    }

Danke für eure Hilfe!!!!!
 
G

Gast

Gast
Die Idee lieg wahrscheinlich in der Mathematik.
Dein Array beginn bei eins.

Alle linken Knoten liegen auf dem Array auf : 2 * n
Alle rechten Knoten liegen auf : 2*n +1

so ist zB Array[16]

2*2*2*2....also link tiefe 4

15...ungerade...... 2*7+1 // 2*3+1 // 2*1+1 ...also 3mal rechts

13 ......2*6+1 // 2*3 // 2*1+1 also rechts links rechts

vielleich hilft dir das ein wenig
 
G

Guest

Gast
Ja soweit hab ich es schon verstanden. Ich kanns bloß in Java nicht umsetzten.
Vielleciht kann mir ja jemand weiterhelfen?

Danke
 
G

Guest

Gast
Die Seite find ich ja ganz gut, aber wirklich weiterhelfen tut sie mir auch nicht, weil hier direkt die heapeigenschaft hergestellt wird. und ich möcht ja eigentlich erstmal nur einen Baum aus dem Array machen. Der Rest kommt glaub irgendwann später.
 
G

Gast

Gast
Das Array sebst ist der Baum. Mit den Eigenschaften
wie vorher erklärt.
Wenn man bei 1 beginnt ist es so:

Wer ist der Vater ? --> n/2 (eigentlich (n-1)/2 )
Wer ist der linke Sohn? --> n*2
Wer ist der rechte Sohnt --> n*2 +1

Wie gesagt:

Array[10] --> Vater ist also Array[5]
linker Sohn Array[20]
rechter Sohn Array[21]

Array[11] --> Vater Array[5]
links Array[22]
rechts Array[23]

Dies wäre ein Auschnitt aus dem Baum.

weiter nach oben
Vater von 5 ---> Array[2]
Vater von 2 --> Array[1] bei dir die Wurzel
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
M Auf einen Array innerhalb eines Objekts zugreifen Java Basics - Anfänger-Themen 5
O Ziehen im Array um einen Schritt in eine einzige beliebige Richtung Java Basics - Anfänger-Themen 5
C In einer Methode einen Array zurückgeben Java Basics - Anfänger-Themen 2
R Übergeben eines Array Strings an einen Spinner Java Basics - Anfänger-Themen 4
B Probleme beim einlesen einer short variablen für einen Array Java Basics - Anfänger-Themen 1
G Erste Schritte Einen Array absuchen und Buchstaben zählen Java Basics - Anfänger-Themen 17
M Kumulieren von Elementen in einen Array Java Basics - Anfänger-Themen 8
M Kann einen Array nicht füllen, im Nachhinein nur "null"-Werte Java Basics - Anfänger-Themen 11
S Einen Eintrag im Array löschen? Java Basics - Anfänger-Themen 11
R Array: Mehrere Indizes für einen Wert ausgeben? Java Basics - Anfänger-Themen 4
J Alle Vorkommen eines chars in einem Array durch einen anderen char ersetzen Java Basics - Anfänger-Themen 10
S Einen neuen String ohne Array oder List erzeugen??? Java Basics - Anfänger-Themen 13
T Array in einen Baum zu überführen Java Basics - Anfänger-Themen 3
B Datentypen Werte in einen Array einlesen und danach die beiden höchsten Werte wieder ausgeben Java Basics - Anfänger-Themen 3
C ein [n] [n] array erstellen und einen wert zuordenen Java Basics - Anfänger-Themen 7
C OOP Aus Vektor zufällig einen Eintrag wählen und in Array[][] schreiben Java Basics - Anfänger-Themen 5
N in int array einen pattern(eine zahl) finden Java Basics - Anfänger-Themen 21
B Datentypen Char Array in einen String verwandeln? Java Basics - Anfänger-Themen 2
G Überprüfen ob einen Array einen Value enthält Java Basics - Anfänger-Themen 13
halla Character-Array in einen String umwandeln Java Basics - Anfänger-Themen 3
I einen text von tastatur in array einlesen und auch ausgeben Java Basics - Anfänger-Themen 1
B Einen Array aus vielen Vectoren Java Basics - Anfänger-Themen 3
G Elemente in einem String-Array in einen String umwandeln Java Basics - Anfänger-Themen 2
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
Lion.King Array deklarieren und initialisieren Java Basics - Anfänger-Themen 5
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben