Anzahl möglicher Suchpfade bei der Suche in BST


12

Ich habe die folgende Frage, aber keine Antwort darauf. Ich würde mich freuen, wenn meine Methode korrekt ist:

Q. Bei der Suche nach dem Schlüsselwert 60 in einem binären Suchbaum werden Knoten mit den Schlüsselwerten 10, 20, 40, 50, 70, 80, 90 durchlaufen, nicht unbedingt in der angegebenen Reihenfolge. Wie viele verschiedene Reihenfolgen sind möglich, in denen diese Schlüsselwerte auf dem Suchpfad vom Wurzelknoten mit dem Wert 60 auftreten können?

(A) 35 (B) 64 (C) 128 (D) 5040

Aus der Frage verstehe ich, dass alle angegebenen Knoten in die Durchquerung einbezogen werden müssen und letztendlich der Schlüssel 60 erreicht werden muss. Eine solche Kombination wäre beispielsweise:

10, 20, 40, 50, 90, 80, 70, 60.

Da wir alle oben angegebenen Knoten durchlaufen müssen, müssen wir entweder mit 10 oder 90 beginnen. Wenn wir mit 20 beginnen, erreichen wir nicht 10 (da 60> 20 und wir den rechten Teilbaum von 20 durchlaufen).

Ebenso können wir nicht mit 80 beginnen, da wir 90 nicht erreichen können, da 80> 60 den linken Teilbaum von 80 durchlaufen und somit 90 nicht erreichen.

Nehmen wir 10. Die verbleibenden Knoten sind 20, 40, 50, 70, 80, 90. Der nächste Knoten kann entweder 20 oder 90 sein. Wir können aus demselben zuvor genannten Grund keine anderen Knoten nehmen.

Wenn wir ähnlich betrachten, haben wir auf jeder Ebene zwei Möglichkeiten. Da es 7 Knoten gibt, zwei Auswahlmöglichkeiten für die ersten 6 und keine Auswahl für die letzte. Also gibt es total

Permutationen = 2 6 = 6422222212664

  1. Ist das eine richtige Antwort?

  2. Wenn nicht, was ist der bessere Ansatz?

  3. Ich möchte verallgemeinern. Wenn Knoten angegeben sind, wären insgesamt mögliche Suchpfade 2 n - 1n2n1

Antworten:


14

Wenn für den Schlüssel 60 suchen wir eine Reihe erreichen weniger als 60, gehen wir nach rechts (wo die größeren Zahlen sind) , und wir nie Zahlen treffen weniger als K . Dieses Argument kann wiederholt werden, daher müssen die Zahlen 10, 20, 40, 50 entlang der Suche in dieser Reihenfolge vorkommen.KK

Und falls für den Schlüssel 60 der Suche erreichen wir eine Zahl größer als 60 ist , wir gehen leftt (wo die kleineren Zahlen sind) , und wir nie Zahlen treffen größer als K . Daher müssen die Zahlen 90, 80, 70 entlang der Suche in dieser Reihenfolge auftreten.KK

Die Sequenzen 10, 20, 30, 40, 50 und 90, 80, 70 können dann zusammengemischt werden, solange ihre Teilsequenzen intakt bleiben. Somit können wir 10, 20, 40, 50, 90, 80, 70, aber auch 10, 20, 90, 30, 40, 80, 70, 50 haben.

Wir können jetzt die Zahl berechnen und die Position großer und kleiner Zahlen wählen. Siehe den Kommentar von Aryabhata. Wir haben zwei Folgen von 4 und 3 Zahlen. Auf wie viele Arten kann ich sie mischen? In den letzten 7 Positionen muss ich 3 Positionen für die größeren Zahlen wählen (und die restlichen 4 für die kleineren Zahlen). Ich kann diese in ( 7) auswählen Wege. Nachdem wir diese Positionen festgelegt haben, kennen wir die vollständige Sequenz. Beispiel: Mein erstes Beispiel hat die Positionen SSSSLLL, das zweite die Positionen SSLSLL S.(73)

Sie bitten um eine Verallgemeinerung. Immer sind die Zahlen kleiner als die gefundene Zahl und die größeren y- Zahlen in ihrer relativen Reihenfolge festgelegt. Die kleineren Zahlen müssen steigen, die Arger-Zahlen müssen fallen. Die Zahl ist dann ( x + yxy .(x+yy)

PS (bearbeitet). Vielen Dank an Gilles, der festgestellt hat, dass 30 nicht in Frage kommt.


2624

@avi Nein, sie müssen nicht zusammen sein, nur in dieser Reihenfolge: 10, 20, 90, 30, 40, 80, 70, 50 ist OK.
Hendrik

1
@avi: Versuchen Sie so zu denken: Groß und Klein. Jetzt haben Sie 8 Plätze, davon 5 kleine und 3 große. Wie füllst du sie? 8 wähle 3. Was zu 56 kommt, und ich nehme an, das hat Hendrik auch.
Aryabhata

2
@ HendrikJan Es gab keine 30 in der ursprünglichen Frage, es gab nur 7 Werte. Und 7 wähle 3 ist (A).
Gilles 'SO - hör auf böse zu sein'

1
xy

1

Wir werden Moves in Text konvertieren. Es wird angegeben, dass wir während der Suche diese Knoten durchlaufen haben

Geben Sie hier die Bildbeschreibung ein

wie man sehen kann, sind rote größer als 60 und blaue kleiner als 60.

{S,S,S,S,L,L,L}

7!4!×3!=35
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.