博客作业05—查找

一:学习总结

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

四:阅读代码

猜你喜欢

转载自www.cnblogs.com/hejunxia/p/9063285.html