将函数签名转换为函数(AVL树)

时间:2015-12-04 08:15:38

标签: c++ tree signature avl-tree

我们获得了一项任务,帮助我们准备构建AVL树。该任务涉及“功能签名”。经过一些谷歌搜索,我仍然不清楚我将签名转换为实际实现的能力。

分配:

1。编写一个递归例程来计算树的高度。这是我写的例程的函数签名。

int AVL<Item_Type>::get_height(AVLNode<Item_Type>*& local_root)

假设调用者按如下方式调用此例程:

get_height(root);

2. 编写递归例程以删除树中的节点。使用此功能签名。

void delete_tree (AVLNode<Item_Type>*& local_root);

考虑我们谈到的三种树遍历(预订,有序,后期订购)。考虑哪一个最适合这个问题。

假设调用者按如下方式调用此例程:

delete_tree(root);

我的实施:

1

int AVL<Item_Type>::get_height(AVLNode<Item_Type>* &local_root){
int height = 0;

if (local_root == NULL)
{
return -1;
}

int leftHeight = get_height(local_root->left);
int rightHeight = get_height(local_root->right);
int maxHeight = max(leftHight, rightHeight) + 1;
return maxHeight;
}

2

void AVL<Item_Type>::delete_tree(AVLNode<Item_Type>* &local_root){
if (local_root != NULL){
delete_tree(local_root->left);
delete_tree(local_root->right);
delete local_root;
}
local_root = NULL;
}
// This is post-order tree traversal (<-?)

我的功能应该如何?我是否正确实施了它们?指出你看到的任何其他错误

0 个答案:

没有答案