本文主要是介绍请要相信我,30分钟让你掌握AVL树(平衡二叉树),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
请要相信我,30分钟让你掌握AVL树(平衡二叉树)
前言:本文不适合 给一组数据15分钟就能实现AVL的插入和删除操作的大牛(也请大牛不要打击小菜)
本文适合,对avl还不了解,还没有亲自实现avl的插入和删除操作的同学
ps,你在嘲笑楼主的题目时,你已证明了自己正在嘲笑自己的智商。我们要善于征服陌生的事物。你如果有半个小时时间就心无杂念的开始吧,建议那些读10分钟文章就心燥还是关闭浏览器吧。
文章结构:
什么是二叉排序树(bst)
typedef struct _BitNode
{
int data;
struct _BitNode *lchild,*rchild;
}BitNode,*BiTree;
// 3:如果返回真把目标到元素的指针指向n,返回假,就把pre复制给n)(参数如果不明白,先不要细究,往下看吧)
bool SearchBST(BiTree T,int key,BiTree pre,BiTree&n);
bool SearchBST(BiTree T,int key,BiTree pre,BiTree&n)
{
if(!T)
{
n=pre; //如果此数为空树,那我们就把前一个元素指针pre(此时为NULL)复制给n,注意树为空时,n才为NULL。
return false; //返回假没有找到
}
else if(key==T->data)
{
n=T; //找到了就把目标元素指针给n
return true;
}
if(key<T->data)
SearchBST(T->lchild,key,T,n) ;//去找他的左子树根比
else
{
SearchBST(T->rchild,key,T,n);//去找他的右子树根比。
}
}
1.2 BST的增添元素算法实现
这篇关于请要相信我,30分钟让你掌握AVL树(平衡二叉树)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!