Baum in java

Neue Frage »

Auf diesen Beitrag antworten »
Batista Baum in java

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
 /** Klasse, die einen Knoten des Baumes speichert */
  protected static class Knoten<INHALT> {
    /** Gespeichterte Daten */
    protected INHALT daten;

    /** Linker und rechter Sohn */
    protected Knoten<INHALT> links, rechts;

    /** Konstruktor fuer Knoten */
    public Knoten(INHALT daten, Knoten<INHALT> links, Knoten<INHALT> rechts) {
      this.daten = daten;
      this.links = links;
      this.rechts = rechts;
    }
  
 public suche (Knoten imBaum) {
....
...
}




Darf man auch
public suche (Knoten<INHALT> imBaum) {

so schreiben?

Ich habe beides versucht und es gehen beide, allerdings wann es essentiell Knoten<INHALT> zuschreiben und wann nicht?
 
Auf diesen Beitrag antworten »
Batista

die Methode anzahlKnoten(), die berechnet aus wie vielen Knoten<INHALT>der Baum besteht, welche Komplexitat hat sie?

ich würde sagen O(2^n), dabei entsprecht 2 die höhe des Baumes
Auf diesen Beitrag antworten »
eulerscheZahl

Generics sollen Typsicherheit geben. Wenn du keinen Typ angibst, bekommst du diese Sicherheit nicht, was der Compiler prompt mit einer Warning quittiert.
Knoten is a raw type. References to generic type Knoten<INHALT> should be parameterized

Und dieser Code lässt sich ausführen:
code:
1:
2:
3:
4:
5:
public static void main(String[] args) {
	Knoten<Integer> k1 = new Knoten<Integer>(3, null, null);
	Knoten<Float> k2 = new Knoten<Float>(3.2f, null, null);
	k1.suche(k2);
}

du siehst, ich habe Integer und Float vermischt. Wenn du den generischen Typ angibst (also Knoten<INHALT>), funktioniert das nicht.
The method suche(Knoten<Integer>) in the type Knoten<Integer> is not applicable for the arguments (Knoten<Float>)

Eine class kann nicht protected sein, nur die Member. Und static class mag Java (anders als C#) auch nicht.
Bei suche fehlt ein Rückgabetyp.

Eine interessante Art, die Laufzeit anzugeben. Ist richtig (für balancierten Baum), ich hätte O(n) gesagt, mit n = Anzahl der Einträge im Baum.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »