Baum to Array

Status
Nicht offen für weitere Antworten.
B

bernd1983

Gast
Hallo ich möchte einen aufsteigend sortiertem Binärbaum in ein Array konvertieren.

Also mit einer rekursiven Hilfsmethode count bekomme ich die Arraylänge.
Nur ist mir nicht klar wie ich knoten x im Array an der iten Stelle einfüge.

Vielleicht hat jemand eine idee?

thx

mfg

bernhd
 
B

Bernd1983

Gast
ja das ist mir schon klar a=x. :lol:

nur wie sieht die Methode aus die mir x zurückliefert???
 

mikachu

Top Contributor
hm, vielleicht
Code:
public Object getX( int i )
{
    return array[i];
}
 
B

Bernd1983

Gast
also ich glaube ich hab das viel. schlecht erklärt:

ich benötige die methode die in einem aufsteigend sortiertem Binärbaum, immer nur einen Knoten zürückgibt.

ich kenne ja die inorder, aber diese gibt ja den ganzen baum zurück und damit unbrauchbar um in array einzufügen.
 
B

Bernd1983

Gast
Code:
int [] reverseArrayOf(Tree t){
		
		int length=t.count();
		
		int [] a=new int[length];
		i++;
                                        for(int i=0;i<.a.length;i++)
			
			a[i]=t.gesuchtemethode;
		
		return a;
		
}

int count(){
		
		return counter(root);
	}

	int counter(Node p){
		
		 
		if(p!=null){
			count++;
		}
		if(p.left==null&&p.right==null){
			return count;
			
		}
		if(p.left!=null){
		  count=counter(p.left);
			
		}if(p.right!=null){
			
		  count=counter(p.right);
			
		}
	return count;
		
	}

int gesuchteMethode(){ //fehlt mir}

//Edit ksg9|sebastian - Code-Tags eingefügt
 

mikachu

Top Contributor
Code:
int [] reverseArrayOf(Tree t)
{

    int length=t.count();

    int [] a=new int[length];
    i++;
    for( int i = 0; i < a.length; i ++ )
        a[i]=t.gesuchtemethode;
    return a;
}

int count()
{
    return counter(root);
}

int counter(Node p)
{
    if(p!=null)
    {
        count++;
    }

    if( p.left == null && p.right == null )
    {
        return count;
    }

    if(p.left != null )
    {
        count = counter( p.left );
    }

    if( p.right != null )
    {
        count = counter( p.right );
    }

    return count;
}


int gesuchteMethode()
{
    //fehlt mir
}
...ist lesbarer...
 
B

Bernd1983

Gast
hallo also mit diesem link hab ich nichts anfangen könne. weiss nicht was mir das für meinen code helfen soll.

Vielleicht weiss noch jemand was
 

byte

Top Contributor
Bernd1983 hat gesagt.:
ich benötige die methode die in einem aufsteigend sortiertem Binärbaum, immer nur einen Knoten zürückgibt.

Poste halt mal den Code des Binärbaums, wir sind ja keine Hellseher.
 

André Uhres

Top Contributor
Bernd1983 hat gesagt.:
hallo also mit diesem link hab ich nichts anfangen könne.
Auf der Seite steht alles drin. Die gesuchte Methode heisst gibElement
und das Anwendungsschema wird in gibAus gezeigt.
Ist etwas kompliziert, aber ne Zaubermethode gibt's dafür wohl nicht.
 
B

Bernd1983

Gast
Code:
class Node{
	
	Node left;
	Node right;
	int val;
	Node(int val){
		this.val=val;
	}
	
}//class Node

class Tree{
	
	Node root;
	int count=0;
	int i=0;
	Tree(){
		root=null;
	}
 

Leroy42

Top Contributor
Meine Antwort von gestern Abend, die im falschen Thread gelandet ist:
Code:
class Tree { 
   private int val; 
   private Tree left; 
   private Tree right; 
   ... 
   public int[] asArray() { 
      int[] array = new int[count()]; 
      asArray(array, 0); 
      return array; 
   } 
    
   int asArray(int[] array, int index) { 
      if (left) index = left.asArray(array, index); 
      array[index++] = val; 
      if (right) index = right.asArray(array, index); 
      return index; 
   }
 
B

Bernd1983

Gast
habs ausgecodet

funktioniert leider nicht bekomme nur immer 0 zurück

trotzdem thx

bernd
 
B

Bernd1983

Gast
entschuldige mein Fehler

funktioniert ausgezeichnet - hab falsch abgetippt

thx @leroy
 
B

Bernd1983

Gast
jetzt versteh ich den algo. aber wie kommt man auf sowas??

wie muss man da denken, damit man rekursive Algos wie der vorherige coden kann?????
 

Leroy42

Top Contributor
Noch eine Anmerkung:
Deine count()-Methode benötigt eine Instanzvariable count, die ansonsten
nicht benötigt wird, aber auch nicht Thread-safe ist. Das heißt, wenn
zwei Threads parallel diese Methode aufrufen, behindern sie sich
gegenseitig.

Auch wenn du im Moment und später keine Threads benötigst, ist es doch
besser, die count-Methode unabhängig zu machen. Beispiel:

Code:
class Tree { 
   private int val; 
   private Tree left; 
   private Tree right; 
   ... 
   public int count() {
      int countL = left==null ? 0 : left.count();
      int countR = right==null ? 0 : right.count();
      return countL + countR + 1:
   }
}
 

Leroy42

Top Contributor
Bernd1983 hat gesagt.:
Wie muss man da denken, damit man rekursive Algos wie der vorherige coden kann?????

:shock: Rekursiv denken? :shock:

Im Ernst: Wie bei vielem Anderen, ist es einfach nur Übung.

Es hilft auch, ein Faible für ästhetische Programmierung zu haben :cool:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Array in einen Baum zu überführen Java Basics - Anfänger-Themen 3
B Array To Baum Java Basics - Anfänger-Themen 2
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
HelpInneed Baum ausgeben (aber mal anders) Java Basics - Anfänger-Themen 3
G AVL-Baum Java Basics - Anfänger-Themen 1
G Rot-Schwarz-Baum Java Basics - Anfänger-Themen 8
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
CptK Interface Baum visualisieren Java Basics - Anfänger-Themen 37
CptK Best Practice Merge-Sort als Baum darstellen Java Basics - Anfänger-Themen 3
E Baum pfadweise durchlaufen Java Basics - Anfänger-Themen 11
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
L Traversierungsverfahren Baum: LevelOrder Java Basics - Anfänger-Themen 17
L Rekursion im Baum Java Basics - Anfänger-Themen 9
L Baum Knoten zählen Java Basics - Anfänger-Themen 6
L B+Baum innere Knoten erstellen Java Basics - Anfänger-Themen 3
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
F Aufgabe Rekursion Binärer Baum Java Basics - Anfänger-Themen 15
D Werte AVL-Baum löschen Java Basics - Anfänger-Themen 2
M Binären Baum Kinder setzen Java Basics - Anfänger-Themen 12
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 4
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 0
J Überprüfen, ob eine 2D Matrix ein Baum ist Java Basics - Anfänger-Themen 5
R Baum erzeugen Java Basics - Anfänger-Themen 61
B Baum Traversierung Postorder Java Basics - Anfänger-Themen 6
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
A Voller Baum Java Basics - Anfänger-Themen 7
S n-ärer Baum Java Basics - Anfänger-Themen 6
O Unterschied Baum <-> Automat Java Basics - Anfänger-Themen 2
K Tiefen- und Breitensuche beim Baum durch Stack und Warteschlange Java Basics - Anfänger-Themen 1
C kompletter baum Java Basics - Anfänger-Themen 2
M Collections Iterator und generischer Baum Java Basics - Anfänger-Themen 0
M Baum Code kurze frage ... Java Basics - Anfänger-Themen 6
D Ein Objekt in einem Baum finden und ausgeben. Java Basics - Anfänger-Themen 4
K Rot-Schwarz-Baum min und max-Tiefe Java Basics - Anfänger-Themen 1
A min() Methode Baum Java Basics - Anfänger-Themen 1
J Baum rekursiv durchlaufen Java Basics - Anfänger-Themen 2
J Baum Knoten löschen Java Basics - Anfänger-Themen 10
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
Screen 2,4 Baum Frage Java Basics - Anfänger-Themen 6
T Rot-schwarz Baum Problem Java Basics - Anfänger-Themen 3
A Rekursion in Baum und ArrayList als Rückgabe Java Basics - Anfänger-Themen 2
P Pythagoras Baum - Berechnung der Punkte Java Basics - Anfänger-Themen 9
C 2-3 Baum Java Basics - Anfänger-Themen 6
H Baum Java Basics - Anfänger-Themen 4
L Rot Scharz Baum von Binärbaum erben Java Basics - Anfänger-Themen 9
B Baum > Baum-Swing Java Basics - Anfänger-Themen 4
L eigenen Baum schreiben Java Basics - Anfänger-Themen 5
Luk10 Anzahl der Knoten in einem Baum ausgeben! Java Basics - Anfänger-Themen 6
S Das reinschreiben einer Klasse in den Baum Java Basics - Anfänger-Themen 6
H B-Baum: Knoten Position als Parameter oder als Variable im Objekt? Java Basics - Anfänger-Themen 4
A Baum mit geometricfigur Werte Java Basics - Anfänger-Themen 6
D Datentypen Einfügen im RotSchwarz Baum Java Basics - Anfänger-Themen 2
F FileSystem in Baum darstellen/wurzel festlegen Java Basics - Anfänger-Themen 3
G List als Rückgabewert einer rekursiven Methode (Baum) Java Basics - Anfänger-Themen 3
I Baum graphisch darstellen Java Basics - Anfänger-Themen 2
P Binärer Baum mit Composite-Entwurfsmuster Java Basics - Anfänger-Themen 2
L Baum Swing AVL Java Basics - Anfänger-Themen 4
Binary.Coder 2-3-4 Baum vs. (2,4) Baum Java Basics - Anfänger-Themen 2
ModellbahnerTT Ab-Baum Applet Java Basics - Anfänger-Themen 3
P Baum-Menü in Java Java Basics - Anfänger-Themen 5
H Baum Java Basics - Anfänger-Themen 11
G AVL Baum Java Basics - Anfänger-Themen 20
J Baum spiegeln Java Basics - Anfänger-Themen 7
N 2-3 Baum, Einfügen Java Basics - Anfänger-Themen 5
G Rekursion mit Return - Baum durchlaufen Java Basics - Anfänger-Themen 4
G Baum Datenstruktur Java Basics - Anfänger-Themen 2
V Baum mit log n Aufwand für Einfügen und Löschen und. Java Basics - Anfänger-Themen 5
H Tiefensuche im binären Baum Java Basics - Anfänger-Themen 2
P Problem mit Darstellung im Baum Java Basics - Anfänger-Themen 4
G Binärer Baum Java Basics - Anfänger-Themen 3
M Binärer Baum Tiefe Java Basics - Anfänger-Themen 14
G universeller baum Java Basics - Anfänger-Themen 13
G Baum testen Java Basics - Anfänger-Themen 20
H Löschen in einem binären Baum führt zu einem StackOverflow Java Basics - Anfänger-Themen 2
L Binären Baum speichern Java Basics - Anfänger-Themen 6
R Pythagoras-Baum Java Basics - Anfänger-Themen 5
W Baum durchlaufen Java Basics - Anfänger-Themen 3
T binärer Baum Java Basics - Anfänger-Themen 3
G eine Knoten aus einem Baum löschen. [SOLVED] Java Basics - Anfänger-Themen 7
P allg. Baum aus Liste Java Basics - Anfänger-Themen 2
J String in binären Baum umwandeln Java Basics - Anfänger-Themen 7
R binärer Baum Java Basics - Anfänger-Themen 2
F Abstrakte Klasse Baum Java Basics - Anfänger-Themen 6
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
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
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

Ähnliche Java Themen

Neue Themen


Oben