标签:模拟 fine visit 优先级队列 tab 图片 链表 har 最大值
目录
define M 100
class PTNode{
ElemType data;
int parent}
class tree
{
PTN items[M]
int root;
int n;
两种特殊的二叉树
满二叉树
深度为k: 2^k-1
每层:2^i-1
完全二叉树:满去掉最下层最右边
二叉树的遍历(递归性)!!
一般而言,一棵含有m各元素的平衡n元树具有的高度为lognm。
问题2解决方案:左旋右旋指的是AVL树(高度平衡的搜索二叉树
一棵平衡树,或是空树,或是具有以下性质的二叉搜索树:左子树和右子树都是AVL树,且左右子树的高度之差的绝对值不超过1。 )的平衡化旋转。
AVL树相较于普通的二叉搜索树,自主要的就是做了平衡化处理,使得二叉树变的平衡,高度降低。
在插入一个结点后应该沿搜索路径将路径上的结点平衡因子进行修改,当平衡因子大于1时,就需要进行平衡化处理。从发生不平衡的结点起,沿刚才回溯的路径取直接下两层的结点,如果这三个结点在一条直线上,则采用单旋转进行平衡化,如果这三个结点位于一条折线上,则采用双旋转进行平衡化。
void puttree(tree t){
if(t==NULL)return;
else{
putchar(‘[‘);
puttree(t->left);
printf(“%d ”,t->data);
puttree(t->right);
putchar(‘]’);
}
}
char?bra[]={"-/\\<"};
void?puttree(tree?t,int?h){
int?i;
if(t!=NULL){
puttree(t->right,h+1);
for(i=0;i<h;i++)putchar('\t');
printf("%d",t->data);
putchar(bra[
((NULL!=(t->left))<<1)
|(NULL!=(t->right))
]);
putchar('\n');
puttree(t->left,h+1);
}
}
上周无考试
堆的学习是在之前二叉树的基础上,其实优先级队列就是将堆进行一次封装,都调用了堆的函数。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 42/42 | 2/2 | 20/20 | |
第三周 | 394/471 | 2/4 | 25/45 | |
第四周 | 394/471 | 2/4 | 25/45 | |
第五周 | 1668/2139 | 2/6 | 35/80 | |
第六周 | 2388/4527 | 1/7 | 30/110 | |
第七周 | 1660 /6187 | 2/9 | 25/135 | |
第八周 | 1660/7847 | 2/11 | 20/130 | |
第九周 | 1660/9507 | 2/13 | 25/155 | |
第十周 | 1144/10651 | 2/15 | 30/185 |
计划学习时间:25小时
实际学习时间:30小时
改进情况:希望提高效率
标签:模拟 fine visit 优先级队列 tab 图片 链表 har 最大值
原文地址:https://www.cnblogs.com/weiii/p/11935757.html