在O(1)时间中查找BST大小C

问题描述 投票:1回答:1

我有两个问题。这两个函数的当前运行时是什么?如果不是O(1)(似乎对我来说像O(n)),有人可以给我一个提示(而不是给我答案)关于如何使其变为O(1)吗?谢谢

static int size(NODE *r)
{
    if(r==NULL) 
        return 0;

    return size(r->left) + size(r->right) + 1;
}


int bst_size(BST_PTR t)
{
    return size(t->root);
}
c binary-search-tree
1个回答
1
投票

节点可以包含在BST struct中,该节点将具有一个计数器,该计数器在插入/删除时将增加和减少。

© www.soinside.com 2019 - 2024. All rights reserved.