博客作业05--查找

1.学习总结

1.1查找的思维导图

1232019-20180526113337361-678922665.png

1.2 查找学习体会

查找这一功能在很多数据结构中都有用到,这一单元系统的学习了个多种查找方法
查找主要分为静态查找和动态查找,选用合适的查找算法十分重要,查找的ASL是查找算法
优劣的重要指标

2.PTA实验作业

2.1 题目1:7-1 QQ帐户的申请与登陆

设计思路

    定义map<long long,string>qqmap存放账号密码
    定义迭代器it
    输入操作次数n
    while(n){
        输入操作choice
        输入账号temp密码pw
        if choice = N创建账号
            用it在map中查找该qq号
            if 找到 输出ERROR: Exist
            else 将该qq号和密码存入qqmap 输出New: OK

        else if choice = L
            if 在 qqmap中找到账号&&密码正确 输出Login: OK"
            else 登陆失败
        }

代码截图

1232019-20180525230633248-1800309351.png

PTA提交列表说明

1232019-20180525230702217-1365361850.png
这一题学会用map就很简单了,就是输出不小心格式错误了一下

2.2题目2:是否二叉搜索树

设计思路

bool IsBST ( BinTree T ){
    判断空树或单子树的情况
    判断左子树的最大节点和右子树最小节点和当前节点的关系
    判断左右子树与当前节点关系
}

代码截图

1232019-20180525231437964-708593485.png

PTA提交列表说明

1232019-20180525231532067-1608800946.png
这题对我来说有点难度,刚开始的时候想的比较简单,没有考虑到左子树的最大节点要小于当前节点和右子树的最小节点要大于当前节点
所以有一个测试点一直过不去,后来也是看了同学的代码才知道怎么做

2.37-2 航空公司VIP客户查询

设计思路

    map<string,int>VIPmap
    输入vip数量n和最短历程min
    定义迭代器it
    while(n){
        输入身份证号str和历程len
        用迭代器it在map中查找str
        if it = VIPmap.end
            将str和对应的len存入VIPmap
        else    VIPmap[str]+=len
        }

        输入查找次数n
        while(n){
            输入str
            用it查找str
            if it = VIPmap.end
                输出no info
            else 输出里程数it->second
          }

代码截图

1232019-20180525235417031-390719124.png

PTA提交列表说明

1232019-20180525235446752-651499674.png
这题只要会map也不难和上一题基本一样,前面几处错误是因为身份证号码的存储问题,而且这题输入输出要用
scanf和printf

3.截图本周题目集的PTA最后排名

3.1 PTA排名

1232019-20180526000137882-2039261975.png

3.2我的总分:145

4. 阅读代码

红黑树查找
1232019-20180526095921473-1122704237.png
这是红黑树的结构体,和普通二叉搜索树相比多了一个颜色的属性,其他的也都一样
1232019-20180526103108306-1609723289.png
1232019-20180526103201900-745446210.png

这是红黑树的左旋和右旋
1232019-20180526103257055-1421790382.png
红黑树的插入
1232019-20180526103516759-1841144945.png
1232019-20180526103554342-1176846781.png
这是用来判断红黑树该左旋还是右旋是红黑树实现的核心算法,红黑树是平衡二叉树的一种优化,可以利用上色的
方法判断出哪个节点将要失衡,并将其调整为平衡二叉树,大大减少了查找的时间复杂度,STL中的map用的就是红黑色
来对其key值进行排序,应用很广泛

5. 代码Git提交记录截图

1232019-20180526101629378-100058780.png

转载于:https://www.cnblogs.com/Airoure/p/9091134.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值