Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [Java]Tiefe eines Binärbaum (https://www.delphipraxis.net/104678-%5Bjava%5Dtiefe-eines-binaerbaum.html)

freak4fun 8. Dez 2007 20:22


[Java]Tiefe eines Binärbaum
 
Hallo,
wie bekomme ich die Teife eines nicht vollen Binärbaums?

Ich habe eine Methode die alle knoten zurückgibt, aber die Tiefenermittlung bekomme ich nicht hin. :(

MfG
freak

DGL-luke 8. Dez 2007 20:27

Re: [Java]Tiefe eines Binärbaum
 
Rekursiver Ansatz:

Delphi-Quellcode:
type
  IBinaryNode = interface
    function GetLChild: IBinaryNode;
    function GetRChild: IBinaryNode;
  end;

function GetMaxDepth(Tree: IBinaryNode): Integer;
var
  LDepth, RDepth: Integer;
begin
  LDepth := 0;
  RDepth := 0;
  if Tree.GetLChild <> nil then
    LDepth := GetMaxDepth(Tree.GetLChild);
  if Tree.GetRChild <> nil then
    RDepth := GetMaxDepth(Tree.GetRChild);

  Result := Max(LDepth, RDepth) +1;
end;
EDIT: Das nach Java zu übersetze, sollte nicht schwierig sein ^^

freak4fun 8. Dez 2007 20:28

Re: [Java]Tiefe eines Binärbaum
 
Ähm... ok. Schau ich mir mal an. Danke!

Code:
public int getDepth(){
  int lDepth = 0;
  int rDepth = 0;
   
  if(getLeft() != null){
    lDepth = getLeft().getDepth();
  }
  if(getRight() != null){
    rDepth = getRight().getDepth();
  }
  if(lDepth >= rDepth){
    return lDepth +1;  
  } else {
    return rDepth + 1;
  } 
}
Danke! funktioniert. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 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