1.学习总结(2分)函数
1.1查找的思惟导图
学习
1.2 查找学习体会设计
学习体会:经过这段时间的学习发现本身的不少不足,不管是在代码量仍是预习复习知识方面都有所欠缺。在学习查找的知识的时候我运用了李春葆老师视频教学来实现个人学习巩固,自我认为颇有帮助。对于数表查找这方面要多注意平衡二叉树的转换调整方法还有b树的构造,何时找父节点何时找兄弟节点的拆分合并须要勤加复习。还在哈希表的不成功查找率上的计算要多作些题目,选择正确的除数等等。个人代码能力不高,对本身下阶段的目标是能尽可能经过别人的代码来写出用同种思路而写的本身的代码。3d
2.PTA实验做业(4分)
2.1 题目1:6-2 是否二叉搜索树(25 分)
本题要求实现函数,判断给定二叉树是否二叉搜索树。code
2.2 设计思路(伪代码或流程图)视频
定义变量p表示传入的二叉树T进行运算
if判断是否为空树
if判断是否只有根节点
p->T->Left
while直到p->Right==NULL
end while
if判断是大于根节点blog
p->T->Right
while直到p->Left==NULL
end while
if判断是小于根节点
return IsBST(T->Left)&&IsBST(T->Right)实现递归禅坐递归
2.3 代码截图
编译
2.4 PTA提交列表说明。思维导图
PTA提交列表中的每一个错误详细说明为何及如何解决。
一开始参考网上的代码写,后来本身改进了一下经过能让本身更能看懂的方式再修改了一次,中间编译错误是由于键盘切换错了。
2.1 题目2:6-3 二叉搜索树中的最近公共祖先(25 分)
在一棵树T中两个结点u和v的最近公共祖先(LCA),是树中以u和v为其后代的深度最大的那个结点。现给定某二叉搜索树(BST)中任意两个结点,要求你找出它们的最近公共祖先。
2.2 设计思路(伪代码或流程图)
定义树p做传递原函数中的T,temp标志看是否存在最近公共祖先。
while(p!=NULL)
if key==u
{
tmp=1;
break;
}
else{
if(p->Key>u)
p=p->Left;
else(p->Key<u)
p=p->Right;
}
end while
if(tmp==0)
return ERROR
p=T;
tmp=0;
重复上面步骤从新置p找右边
再从新置p找祖先
p=T;
while(p!=NULL)
{
若是u,v都小于关键字,则LCA位于左子树
if(p->Key>u && p->Key>v)
p=p->Left;
大于则位于右子树
else if(p->Key<u && p->Key<v)
p=p->Right;
else找到
break;
}
end while
return p->Key;
2.3 代码截图
2.4 PTA提交列表说明。
PTA提交列表中的每一个错误详细说明为何及如何解决。
部分正确是由于判断条件的缺失致使没有考虑的所有的状况
2.1 题目3:7-2 航空公司VIP客户查询(25 分)
2.2 设计思路(伪代码或流程图)
参考网上代码
2.3 代码截图
2.4 PTA提交列表说明。
PTA提交列表中的每一个错误详细说明为何及如何解决。