AGB  ·  Datenschutz  ·  Impressum  







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

Binären Baum

Ein Thema von Stillmatic · begonnen am 30. Jun 2007 · letzter Beitrag vom 2. Jul 2007
Antwort Antwort
Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#1

Binären Baum

  Alt 30. Jun 2007, 19:23
Kann mir einer von euch einen tip geben wie ich einen Binären Baum mit Buchstaben füllen könnte!!

Aber nicht einfach füllen sondern nach einem bestimmten Kriterium!
Ich habe einen Array in dem ein Buchstabe(A-Z) einem Zeichen zugewiesen wird z.B (.) (-)!

Also soll zum Beispiel der Buchstabe mit einem (.) rechts und der Buchstabe mit einem (-) links dargestellt werden!!

Das ist bissher auch kein Problem, das Problem ist das manchen Buchstaben dann diese Zeichenfolge zugewiesen ist ...-!!

Könnte mir da einer nen Tip geben????
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Binären Baum

  Alt 30. Jun 2007, 19:43
Hallo,

wenn ich deine Frage richtig verstehe, dann bedeutet die Wegbeschreibung ...- dass du im Binärbaum dreimal rechts und einmal links abzweigen sollst um an den fraglichen Buchstaben zu gelangen. Du musst also alle gegebenen Wegbeschreibungen nach ihrer Länge sortieren und kannst dann deinen Baum aufbauen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#3

Re: Binären Baum

  Alt 2. Jul 2007, 00:04
Ne ich muss das irgendwie anders lösen!

Das sortieren kann ich nicht machen da ich dann die Liste veränder und das darf nicht sein!

Es muss noch eine andere Möglichkeit geben!

Meine Idee ist das ich irgendwie abfrage ob das Zeichen . oder - ist um dann den Buchstaben an die Stelle zu schreiben!
Aber das bekomme ich noch nicht so ganz hin??
  Mit Zitat antworten Zitat
Benutzerbild von edosoft
edosoft

Registriert seit: 27. Okt 2003
Ort: Wehingen
258 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Binären Baum

  Alt 2. Jul 2007, 00:25
also ich versteh nicht was du willst
Dominik Weber
www.edo-soft.com
  Mit Zitat antworten Zitat
Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#5

Re: Binären Baum

  Alt 2. Jul 2007, 00:34
Ich muss einen Binären Baum mit Buchstaben füllen!
Ich habe einen Array von A-Z mit (.) (-) kombinationen!
Also trägt Array[D] Z.B -...!!
Jetzt muss der Binäre Baum aber aufgrund von den (.) (-) Kombinationen gefüllt werden wobei ein Punkt in die linke und ein - in die rechte Verzweigung geht!!

Nur komme ich da nicht recht hinter wie ich dann Festelle wie weit ich in den Baum gehen muss!
Wenn ich nur ein Zeichen habe ist es ja einfach nur was macht man bei 2 oder merh Zeichen???
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Binären Baum

  Alt 2. Jul 2007, 07:17
hört sich nach huffman komprimierung an oder?

gruß
reli
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Binären Baum

  Alt 2. Jul 2007, 07:25
marabu hat schon Recht: Natürlich kann man das Array nicht einfach so sortieren, denn der Index enthält ja die Information des Pfades für den Buchstaben. Sein Vorschlag ist hinsichtlich der Laufzeit optimal, aber es geht auch so (die Funktion fügt ein Zeichen anhand des Pfades in einen Baum ein):

Delphi-Quellcode:
Procedure BildeBaum (aChar : Char; aPfad : String; aBaum : TBinaerBaum);
Begin
  If aPfad='Then
     aBaum.Zeichen := aChar
  Else If aPfad[1]='.Then Begin
    If not Assigned (aBaum.Links) Then aBaum.Links := TBinaerbaum.Create;
    BildeBaum (aChar, Copy (aPfad,2, maxint), aBaum.Links)
  End
  Else If aPfad[1]='-Then Begin
    If not Assigned (aBaum.Rechts) Then aBaum.Rechts := TBinaerbaum.Create;
    BildeBaum (aChar, Copy (aPfad,2, maxint), aBaum.Rechts)
  End
  Else Raise Exception.Create('Ungültige Pfadangabe');
End;
Ist es eine Hausaufgabe? Dann musst Du das auch verstehen!

@Relicted: Nee, nur weil Buchstaben in einem binären Baum sind, muss das noch kein Huffman sein (kann aber).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Binären Baum

  Alt 2. Jul 2007, 07:45
Guten Morgen,

Zitat von Stillmatic:
... Das sortieren kann ich nicht machen da ich dann die Liste veränder und das darf nicht sein! ...
selbstverständlich darfst du die Liste sortieren - du musst es sogar. Wie willst du sonst deinen Morse-Code in einen Binärbaum verwandeln? Die Ordnung im Baum bleibt ja stets dieselbe und ist nur von der Interpretation der beiden Zeichen abhängig. alzaimar hat dich ja schon darauf gestoßen: Der Sort muss ja kein inplace sort sein:

Delphi-Quellcode:
procedure TDemoForm.Button2Click(Sender: TObject);
var
  i: Integer;
  c: Char;
  a: array['A'..'E'] of String;
  sl: TStringList;
begin
  sl := TStringList.Create;
  a['A'] := '.-';
  a['B'] := '-...';
  a['C'] := '-.-.';
  a['D'] := '-..';
  a['E'] := '.';
  for c := Low(a) to High(a) do
    sl.AddObject(a[c], Pointer(Ord(c)));
  sl.Sort;
  for i := 0 to Pred(sl.Count) do
  begin
    c := Chr(Integer(sl.Objects[i]));
    ListBox.Items.Add(c + '=' + sl[i]);
  end;
end;
Freundliche Grüße
  Mit Zitat antworten Zitat
Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#9

Re: Binären Baum

  Alt 2. Jul 2007, 12:27
@
alzaimar

Was ist was??
aChar : Char ----> Der Buchstabe??
aPfad : String ----> Das Zeichen zum gehörigen Buchstaben??
aBaum : TBinaerBaum ----> Der Baum !
  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 11:19 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