Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Neuer Titel, Altes Prob: Mein Binärbaum (https://www.delphipraxis.net/40428-neuer-titel-altes-prob-mein-binaerbaum.html)

Feechan 15. Feb 2005 19:48

Re: Neuer Titel, Altes Prob: Mein Binärbaum
 
hey, danke!
Wie geht das? dann mach ich es selbst ^^
Fee
P.S.:Schon jemand was entdeckt? ich krieg noch die krise und mein info lehrer ist alles andere als hilfsbereit.... den kann ich nicht fragen :( :( :(
Meine Klassen ignorieren sich gegenseitig, ich weiß auch nicht weiter...

Binärbaum 15. Feb 2005 19:51

Re: HILFE! Dringed, warum geht das so nicht?
 
Zitat:

Zitat von Feechan
ich weiß ist net viel aber unter insertleft wollt ich dann Tbintree.root benutzen, findet der aber net.....

Das kann Delphi nicht finden, da root im TBinTree deklariert ist, die Prozedur, in der du darauf zugreifst aber zu TBinTreeNode gehört.

MfG
Binärbaum

Feechan 15. Feb 2005 19:54

Re: Neuer Titel, Altes Prob: Mein Binärbaum
 
ja ich weiß aber wie soll ich das sonst machen?
Die deklarationen hat mein info-lehrer vorgegeben, hat der sich vertan oder geht das?

Binärbaum 15. Feb 2005 19:59

Re: Neuer Titel, Altes Prob: Mein Binärbaum
 
Zitat:

Zitat von Feechan
ja ich weiß aber wie soll ich das sonst machen?
Die deklarationen hat mein info-lehrer vorgegeben, hat der sich vertan oder geht das?

Vielleicht geht das. Aber ich würde - wenn ich die freie Wahl hätte- das anders lösen.
Man könnte die Deklaration so ändern:
Delphi-Quellcode:
type PBinTree = ^TBinTree;
     TBinTree = record
                 left, right: PBinTree;
                 value: string;
     end;
Demzufolge würde ich die Funktionen für Einfügen usw. seperat schreiben, ohne Klassen zu verwenden. Dann kann man rekursiv auf dem Baum traversieren. Ist meines Erachtens nach einfacher zu implementieren, wenn auch nicht so schön wie mit Klassen.

MfG
Binärbaum

Feechan 15. Feb 2005 20:04

Re: Neuer Titel, Altes Prob: Mein Binärbaum
 
Ja das ist das Prob, ich hab keine wahl.
sonst geht das nicht? das was du geschreiben hast, hatten wir noch nicht :(

Binärbaum 15. Feb 2005 20:09

Re: Neuer Titel, Altes Prob: Mein Binärbaum
 
Tja, wenn das so vorgegeben ist, und du unbedingt im TBinTreeNode auf TBinTree.root zugreifen willst, dann kann man das über einen Zeiger lösen. Dazu übergibst du der Prozedur als zusätzlichen Parameter noch einen Pointer auf TBinTree. Somit kannst du auch darauf zugreifen.
(Was besseres fällt mir im Moment nicht ein.)
[Edit]
Oder darf man die Prozeduren auch nicht ändern?
[/Edit]

Feechan 15. Feb 2005 20:13

Re: Neuer Titel, Altes Prob: Mein Binärbaum
 
meinst du damit, ich soll in der prozedur noch eine variable vom typ TBintreenode (var wurzel:Tbintreenode) deklarieren und dann bsp: Wurzel:=root?
oder wurzel:=tbintree.root?

bttb930 15. Feb 2005 20:14

Re: Neuer Titel, Altes Prob: Mein Binärbaum
 
ach was, VERGISS es!! Fang bloß nicht mit type PBinTreeNode = ^TBinTreeNode an, dein ansatz ist viel besser.

Problem ist dies:

Delphi-Quellcode:
if neuerknoten.value=tbintree.root.value then begin
was ist denn TBinTree? Eine Klasse. Also keine Instanz.

Der Inhalt von InsertLeft könnte wie folgt aussehen:

Delphi-Quellcode:
  Left := L;
fertig, warum willst du irgendwas mit Root prüfen? Wozu braucht die Node überhaupt ein Wissen über die Root?

Binärbaum 15. Feb 2005 20:16

Re: Neuer Titel, Altes Prob: Mein Binärbaum
 
Zitat:

Zitat von Feechan
meinst du damit, ich soll in der prozedur noch eine variable vom typ TBintreenode (var wurzel:Tbintreenode) deklarieren und dann bsp: Wurzel:=root?
oder wurzel:=tbintree.root?

Eigentlich von Typ TBinTree (denn dort ist ja root). Also etwa so:
Delphi-Quellcode:
procedure tbintreenode.insertLeft(l:tbintreenode; var Tree: TBinTree);
var neuerknoten,tl:tbintreenode;
begin
neuerknoten:=l;

if neuerknoten.value=tree.root.value then begin

end;
end;
Das müsste dann funktionieren. Tree muss natürlich der zugehörige TBinTree sein.

Feechan 15. Feb 2005 20:18

Re: Neuer Titel, Altes Prob: Mein Binärbaum
 
Jo danke ich probiers mal aus!
:thumb: :thumb: :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz