平衡树

时间:2020-05-13 09:32:37   收藏:0   阅读:45

为了防止二叉搜索树中性能大大降低的最坏情况出现,我们可以采用一些方法,如:随机化、分期化和最优化来使其达到平衡。

下面函数使用分区函数在线性时间内使一棵二叉搜索树达到完美平衡状态。我们先划分以便把中值节点放入树根,然后(递归地)对子树执行同样的操作。

1 void balanceR(link& h)
2 {
3    if ((h == 0) || (h->N == 1)) return;
4    partR(h, h->N/2);
5    balanceR(h->l);
6    balanceR(h->r);
7 }

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!