AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Liste zu einem binären Baum umformen
Thema durchsuchen
Ansicht
Themen-Optionen

Liste zu einem binären Baum umformen

Ein Thema von Alaitoc · begonnen am 10. Nov 2008 · letzter Beitrag vom 11. Nov 2008
 
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Liste zu einem binären Baum umformen

  Alt 10. Nov 2008, 16:24
Das ist doch schon fast fertig. Du müsstest dann nur noch wenn eine Liste zerteilt wird, je eine Hälfte an einen Baumknoten hängen der dann das Token bzw. den Wert enthält an dem zerteilt wurde. Das ganze rekursiv durchexerzieren bis nur noch 1-elementige Listen rumbaumeln, die du dann auch noch in einen Baumknoten ohne Nachfolger umwandeln könntest.

Es macht zudem Sinn entweder die Liste gleich mit den Baumstrukturen zu basteln (z.B. immer nur "links" anhängen), oder aber etwas OOP ins Spiel zu bringen in dem du etwas der Art nimmst:
Delphi-Quellcode:
type
  TElement = class
  private
    FValue: String;
    FToken: TToken;
  public
    property Value: String read FValue write FValue;
    property Token: String read FToken write FToken;
  end;

  TElementArray = array[0..1] of TElement;

  TElementListNode = class(TElement)
  private
    FNext: TElementListNode;
  public
    property Next: TElementListNode read FNext write FNext;
  end;

  TElementTreeNode = class(TElement)
  private
    FNext: TElementArray ;
  public
    property Next: TElementArray read FNext write FNext;
  end;
Die Verbindungen im Baumknoten könnte man zudem auch noch als Liste statt als Array ausführen, und man könnte Baum- und Listenknoten in eine weitere Klasse verpacken die dann diverse Operationen zur Verfügung stellt, etc. Da sind dann der Phantasie wenig Grenzen gesetzt wie weit man es treiben könnte wenn man wollte, wobei ein gemeinsamer Vorfahre in dieser Art schon einiges vereinfachen könnte, da man dann ja auf die Nutzdaten beider Knotenklassen über das selbe Interface heran kommt ohne große Spagate.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
 


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 08:09 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