baum
-
hi, kann mir jemand vielleicht ne methode schreiben, die alle knoten in einem baum zählt...
class CBaum
{
private Baum:
CBaum *left,*right,*parent,*child
........
......
}
Mfg dohan
-
Probiers mal so:
int CBaum::Count() { int iCnt = 1; if (left) return iCnt += left->Count(); if (right) iCnt += right->Count(); return iCnt; }
Ist ungetestet, aber könnte funktionieren.
[ Dieser Beitrag wurde am 19.06.2003 um 22:20 Uhr von musicman editiert. ]
-
nee, so geht das nicht.
der zählt nur die linken bäume. alles was irgendwo recht ist wird nicht gezählt.int CBaum::Count() { int iCnt = 1; if (left) iCnt += left->Count(); // so isses besser ;) if (right) iCnt += right->Count(); return iCnt; }
-
habe eins mit globalen zähler.. müsste man noch umdoktern
void preorderNodes(tree *t){ if(t != NULL){ if(t->left!=0 || t->right!=0) globalcountnodes++; preorderNodes(t->left); preorderNodes(t->right); } }