Zitat:
Zeichenanzahl != Zeichenzaehler.
Entschuldige, das lag noch daran, dass ich diese Methoden aus einer anderen
Unit kopiert habe.
Zitat:
Wenn du schon wegen TZeichenzahl Probleme hast, warum wird dessen deklaration nicht gezeigt?
Delphi-Quellcode:
unit mZeichenZahl;
interface
uses mItem;
type
TZeichenZahl =
class(TItem)
private
fZeichen : char;
fZahl : integer;
public
constructor create (pZeichen: char);
virtual;
procedure ErhoeheAnzahl;
virtual;
function GetZahl : integer;
virtual;
function GetZeichen : char;
virtual;
function isEqual (pItem: TItem) : boolean;
override;
function isGreater (pItem: TItem) : boolean;
override;
function isLess (pItem: TItem) : boolean;
override;
destructor destroy;
override;
end;
implementation
constructor TZeichenZahl.create(pZeichen: char);
begin
inherited create;
fZeichen := pZeichen;
fZahl := 1;
end;
procedure TZeichenZahl.ErhoeheAnzahl;
begin
fZahl := fZahl + 1;
end;
function TZeichenZahl.GetZahl : integer;
begin
result := fZahl
end;
function TZeichenZahl.GetZeichen : char;
begin
result := fZeichen
end;
function TZeichenZahl.isEqual (pItem: TItem) : boolean;
begin
Result := Self.GetZeichen = TZeichenZahl(pItem).GetZeichen
end;
function TZeichenZahl.isGreater (pItem: TItem) : boolean;
begin
Result := Self.GetZeichen > TZeichenZahl(pItem).GetZeichen
end;
function TZeichenZahl.isLess (pItem: TItem) : boolean;
begin
Result := Self.GetZeichen < TZeichenZahl(pItem).GetZeichen
end;
destructor TZeichenZahl.destroy;
begin
inherited destroy
end;
end.
Zitat:
Und was ist Zeichenzahlbaum, bzw. TBinarySearchTree und was gibt search zurück. (ich hoffe mal das sollte die Zeile 39 sein)
Ja es handelt sich um diese Zeile (mit search), entschuldige, dass ich das nicht markiert habe.
Die Search-Methode sieht wie folgt aus:
Delphi-Quellcode:
function TBinarySearchTree.search(pItem: TItem): TItem;
var
lItem: TItem;
begin
if binaryTree.isEmpty or (pItem = nil) then
result := nil
else
begin
lItem := TItem(binaryTree.getObject);
if pItem.isLess(lItem) then
result := self.getLeftTree.search(pItem)
else
if pItem.isGreater(lItem) then
result:=self.getRightTree.search(pItem)
else
result:=lItem;
end;
end;