标签:就是 节点 删除 htm lse logs 编号 EAP mes
其实这篇文章曾经也在初赛复习里。。
满二叉树:比较简单,就是一颗满的二叉树 废话
完全二叉树:也比较简单,就是除了最后一层,上面都是满的,而最后一层的叶子结点都集中在左边。
平衡二叉树:是一颗空树或者对于每一个节点,他的左子树和右子树高度差不超过1,矮矮胖胖好身材
二叉搜索(查找、排序)树,满足以下条件:
但它有一个问题,如果想要卡的话可以把这棵树卡成一条链,所以就要用到二叉平衡树。
还是上图现实
手打堆也是考的比较多的内容,要记的熟练一些,特别是一些细节。
贴一点模板:
namespace Heap{
void insert(int x){
tre[++sz]=x;
int nw=sz;
while(nw>1){
int nxt=nw>>1;
if(tre[nxt]>tre[nw])swap(tre[nxt],tre[nw]);
else return;
nw=nxt;
}
}
void del(int x){
swap(tre[sz],tre[x]);
sz--;int nw=x;
while(nw*2<=sz){
int nxt=nw<<1;
if(nxt+1<=sz&&tre[nxt+1]<tre[nxt])nxt++;
if(tre[nxt]<tre[nw])swap(tre[nxt],tre[nw]);
else return;
nw=nxt;
}
}
}
再来一点例题:
A.[3,2,5,7,4,6,8]
B.[2,3,5,7,4,6,8]
C.[2,3,4,5,7,8,6]
D.[2,3,4,5,6,7,8]
答案:C 对小顶堆操作的理解
删掉0之后,先把8放到最上面[8,3,2,5,7,4,6],然后向下比较,第一个点的左右儿子编号是2、3,和2交换位置[2,3,8,5,7,4,6],再向下比较,左右儿子编号是6、7,和4交换位置[2,3,4,5,7,8,6],此时8已经没有叶子结点就停止。
标签:就是 节点 删除 htm lse logs 编号 EAP mes
原文地址:https://www.cnblogs.com/tangzhiyang/p/11800340.html