AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Binärbaum aufstellen

Ein Thema von Dragon27 · begonnen am 6. Jul 2011 · letzter Beitrag vom 6. Jul 2011
Antwort Antwort
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

Binärbaum aufstellen

  Alt 6. Jul 2011, 15:18
Hallo Zusammen,

ich habe eine Frage bezüglich Binärbäume aufstellen.

In meinem Studienunterlagen heißt die Aufgabe "Skizzieren Sie einen nicht ausgeglichenen Binärbaum aus den Zahlen 42, 33, 75, 10, 41, 51, 99"

Nun bin ich folgendermaßen vorgegangen:

1. Werte aufsteigend Sotiert
2. Den Anfangsknoten habe ich mit der Formel (Anzahl der Blätter+1)/2 errechnet
3. Ersten Knoten (42) aufgeschrieben und dann die Formel wiederholt

So, nun kommt da auch tatsächlich die Musterlösung raus. Was mich daran irritiert ist, dass wenn die Anzahl der Blätter beispielsweise 8 wären mit meiner Formel 9/2 = 4,5 als ergebnis kommt. Welcher Knoten wird denn dann verwendet?

Oder ist auch meine vorgehensweise nicht richtig?

Danke für Eure Hilfe!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Woyzeck

Registriert seit: 9. Jun 2009
60 Beiträge
 
#2

AW: Binärbaum aufstellen

  Alt 6. Jul 2011, 16:26
Also, wenn kein ausgeglichener Binärbaum gefragt ist, kannst du auch einfach mit der Reihenfolge einfügen, die in der Aufgabe gegeben ist. Wichtig ist dann nur, dass die Binärbaumeigenschaft nicht verletzt wird (also Elemente im linken Teilbaum immer kleiner gleich der Wurzel und der rechte Teilbaum größer).

Wenn du einen ausgeglichenen Binärbaum haben willst, dann sortierst du das Feld und nimmst das mittlere Element als Wurzel. Als zweites Element nimmst du das mittlere der nun entstandenen Teilliste und dann das mittlere der rechten Teilliste.

Also bei folgenden Elementen: 1,2,3,4,5,6,7

fügst du in der Reihenfolge 4, 2, 6, 1, 3, 5, 7 ein.
(Natürlich gibt es noch andere Möglichkeiten, aber dies ist eine der funktionierenden)

Das mittlere Element findest du mit der von dir angegebenen Formel. Wenn dabei jetzt ein x,5 rauskommt, kannst du x oder x+1 als mittleres Element nehmen. Es sollte aber einheitlich sein. (Im Code will man ja schließlich an dieser Stelle keinen Zufall einbauen) Also entweder abrunden oder aufrunden.

Hoffe, ich konnte helfen.

Woyzeck
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz