我需要在我的程序中找到一个函数的时间复杂度。它搜索具有给定键的三叉树的所有内部节点。这棵树是随机填充的。我想我已经设法编写了代码,但我不知道如何计算复杂度。
这是树的函数和结构:
typedef struct _no
{
int chave;
struct _no *F[3];
} TipoNo;
typedef TipoNo *TipoArvore;
int noSubTree (TipoArvore t, int x){
int n;
if (t == NULL){
return 0;
}
else{
if(t->F[0] == NULL && t->F[1] == NULL && t->F[2] == NULL ){
return 0;
}
else if(t->chave == x) {
return 1 + noSubTree(t->F[0], x) +
noSubTree(t->F[1], x) +
noSubTree(t->F[2], x);
}
else {
return 0 + noSubTree(t->F[0], x) +
noSubTree(t->F[1], x) +
noSubTree(t->F[2], x);
}
}
}
如果有人能向我解释应该如何做,我将不胜感激。