一:学习总结
1查找结构思维导图
2查找学习体会
查找的内容很多,计算平均查找度的方法也不同,时间复杂度也不同,但是效率真的能提高很多,就是各种概念之间容易混乱,需要花时间认真研究。
二:PTA实验作业
题目1:是否是二叉搜索树
1设计思路
bool IsBST( BinTree T )
{
若T是空树则是二叉搜索树;
中序遍历该树得到的新节点的值一定要大于前一个值,否则不是;
返回真;
}
2代码截图
3PTA提交列表说明
部分正确:最开始只考虑了很简单的情况。
只考虑在根节点出现左、右子树都是二叉搜索树,但是整棵树不是这种情况,但是其实其他地方也会出现,,,用老师提醒的中序遍历加上递归重新写了一遍。
题目2:二叉搜索树中的最近公共祖先
1设计思路
int search(Tree T,int u);
int LCA( Tree T, int u, int v )//寻找u,v的共同祖先
{
若树为空或者u或v不在该树中 ERROR;
若u或者v就是根节点的值 return T->Key;
若u或者v在同一棵子树上 return T->Key;
若u大于T->key 最近共同祖先在左子树上;
若u大于T->key 最近共同祖先在右子树上;
}
int search(Tree T,int u)//查看u是否在树中
{
若树为空:则不在;
查找该树:
若找到等值的key,则u在该树中;
否则不在;
}
2代码截图
3PTA提交列表说明
部分正确:有较多种情况没有考虑到,比如当前节点即为公共祖先或者是关键字不在树中
补充后:
判断关键字是否在树中需要查找该树,所以后来再写了一个查找函数。
题目3:QQ帐户的申请与登陆
1设计思路
while(N--){
输入命令符,QQ号码,密码;
判断命令符:
如果是新帐户申请
if(mapQQ.count(Num)) 已经存在该用户;
else 存入新信息;
老用户登录
if(!mapQQ.count(Num)) 不存在该用户;
else
if(mapQQ[Num]==M) 登录成功;
else 密码错误;
2代码截图
3PTA提交列表说明
三:截图本周题目集的PTA最后排名
1 PTA排名:
2 我的得分:120
四:阅读代码