我有一个带有以下足迹的二叉树数据结构。我在用C. Node是一个包含
的结构Node* left
Node* right
int key;
VECTOR data;
树由键平衡(例如,当前节点的左侧节点具有较低的键值),而不是数据。我想找到具有最大向量的节点。有一个函数get_size(data),但我不知道如何递归调用函数来获得整个树中的最大向量大小。
答案 0 :(得分:0)
我会按照
的方式尝试int find_max_data_size( Node * p ) {
if( !p ) return 0;
int const left_size = find_max_data_size( p->left );
int const right_size = find_max_data_size( p->right );
int const my_size = get_size( p->data );
return max( left_size, right_size, my_size );
}
并致电find_max_data_size( root )
;
答案 1 :(得分:0)
void walk(NODE_T *I__node, size_t *maxVectorSize)
{
if(I__node)
{
size_t dataSize;
dataSize = get_size(I__node->data, maxVectorSize);
if(dataSize > *maxVectorSize)
*maxVectorSize = dataSize;
walk(I__node->left, maxVectorSize);
walk(I__node->right, maxVectorSize);
}
return;
}