Binärer Suchbaum

stimmen
0

Mein Professor geschrieben, einige Fragen zu beantworten für die Abschlussprüfung. Und ich kann nicht scheinen, die Antworten für sie zu finden. Jede Hilfe wird sehr geschätzt!

Betrachten wir einen binären Baum von n Knoten:
a. Was ist die minimale und maximale Anzahl von Blattknoten?
b. Was ist die minimale und maximale Wert der Höhe?
c. Wie viele Zeiger werden durch den Baum verwendet (nicht die Null - Zeiger zu zählen, und unter der Annahme , wir halten nicht ein Feld , das die übergeordneten speichert)?

* D. Was ist die Schlimmste, Pflege Laufzeit für n Knoten in einen (zunächst leer) binären Suchbaum eingefügt?

Veröffentlicht am 24/05/2011 um 18:27
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
0

Probieren Sie verschiedene Bäume auf einem Papier zeichnen und sehen, was Sie erhalten. Denken Sie daran, dass ein Binärbaum als Baum definiert ist, wobei jeder Knoten 0 haben kann (in welchem ​​Fall sie ein Blatt ist), 1 oder 2 Kinder. Für Ihre Frage sollten Sie den sehr unausgewogenen Fall von 1 Kind pro Knoten untersuchen.

Beantwortet am 24/05/2011 um 18:31
quelle vom benutzer

stimmen
0

Erwägen:

Wenn Sie versuchen, die Anzahl der Blätter zu maximieren, sollten Sie möglichst wenige interne Knoten wie möglich (und umgekehrt, wenn Sie versuchen, die Anzahl der Blätter zu minimieren). Wie können Sie das erreichen?

Um einen Baum maximaler Höhe zu bekommen, werden Sie einige Knoten in jeder Ebene wie möglich stellen. Wie können Sie das tun? Umgekehrt ist für die minimale Höhe, was ist die maximale Anzahl von Knoten, die Sie auf jeder Ebene setzen können?

Wie viele Möglichkeiten gibt es zu jedem Knoten eines Baumes zu bekommen? So wie viele Zeiger benötigen Sie?

Beantwortet am 24/05/2011 um 18:33
quelle vom benutzer

stimmen
0

Ich nehme an, Sie sind entweder Codierung in C oder C ++.

ein. Ein Knoten, wenn die Struktur ist wie folgt definiert: struct {struct Knoten node * links, rechts *; }; Sie können beobachten, dass die Struktur entweder 0 haben kann, 1 oder 2 Blätter. So ist der max 2 ist, min 0 Blätter.

b.Minimal Höhe Null ist, in dem nur der Wurzelknoten enthalten würde. Beachten Sie, dass der Wurzelknoten nicht als eine Höhe von 1 zählt auch Tiefe manchmal Es nennt. Hier ist ein Algorithmus für die Höhe:

    int height(struct node *tree) 
    { 
    if (tree == NULL) return 0;
    return 1 + max (height (tree->left), height (tree->right)); 
    }

Lesen Sie mehr: http://wiki.answers.com/Q/How_do_you_find_out_the_height_of_a_Binary_Search_Tree#ixzz1NIB17SkL

c. Entschuldigen Sie , wenn ich nehme dies die worng Art und Weise, aber ich gehe davon aus, wenn wir dies auf einem Stück Papier vorgezeichnet, wir würden versuchen , die Anzahl der „Links“ zu finden , die wir verwenden würden? In diesem Fall würde es einfach sein , die Anzahl der Knoten im Baum -1 für Wurzelknoten. Dieser Algorithmus auf dieser Seite gefunden http://forums.techarena.in/software-development/1147688.htm können Ihnen helfen: überprüfen , ob root null ist, dann die linke und rechte Knoten als Parameter an die Funktion übergeben.

int countnodes(Node* root)
{
    if (root == null || k<=0)
    {
      return 0;
    } else {
        return 1 + count(root.left,k-1) + count(root.right,k-1);
    }
}
// remember to subtract one at the end.
int totalnodes = countnodes(root) - 1;

d. Die Zeitkomplexität für die besten Fall ist O (n log n), wobei n die Anzahl der Knoten ist einzufügen. Der schlimmste Fall ist O (n). Es ist direkt linear.

Wenn Sie Fragen haben, es einfach mal googlen, gibt es viele Dinge, über binäre Suchbäume kennen. Aber das meiste davon ist einfach Rekursion, die Sie in 30 Sekunden lernen.

Ich hoffe das hilft. Viel Glück auf Ihre Prüfung! Ich hatte meine vor ein paar Monaten. ;)

Beantwortet am 24/05/2011 um 18:39
quelle vom benutzer

stimmen
1

  • Die maximale Anzahl von Blättern ist ceil (N / 2). Die Mindestanzahl ist 1
  • Die maximale Höhe beträgt n. Das Minimum ist Boden (log_2 (n))
Beantwortet am 24/05/2011 um 18:44
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more