红色黑树的内部道路长度

时间:2016-03-26 23:20:28

标签: c++ recursion red-black-tree

我正在做一个家庭作业问题,要求我们找到红黑树的内部路径长度。这是我到目前为止实施的代码。

//Hides the search bar until user manually scrolls up.
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];
CGRect newBounds = self.tableView.bounds;
newBounds.origin.y = newBounds.origin.y + self.searchBar.bounds.size.height;
self.tableView.bounds = newBounds;

我想我错过了递归的基本情况。有人能帮助我更好地理解它吗? 感谢。

1 个答案:

答案 0 :(得分:0)

我认为正确答案是我们不必检查根节点的颜色是否为黑色。应计算黑色和红色节点的内部路径长度。  如果我们不考虑红色链接,则意味着我们正在考虑通过红色链接连接的元素作为双节点,但事实并非如此。

int Tree::internalpathlength(BinTree* root_node, int curr_level){
    if(root_node == NULL){
    return 0;
    }
     else
      return (curr_level+internalpathlength(root_node->left,curr_level+1)+internalpathlength(root_node->right,curr_level+1));
  }