博客作业05--查找

1.学习总结(2分)

1.1查找的思维导图

1.2 查找学习体会

本章查找算法主要分为线性表查找、树表查找、哈希表查找。其中线性表查找比较简单,运用的思路为我们传统的数组思路。而树表查找对我开说较为困难,因为它比起线性表的串联更像是一种一对多的关系,在这种一对多的关系中,将算法的时间和空间复杂度大大降低,这种进阶的思想尤为重要。最后是哈希表,哈希表,也叫散列表,它可以直接找到关键字所在位置,可以将算法的时间复杂度降得更低,又是另一种进阶算法。我现在并没有熟练的掌握这些算法,我需要进一步的学习来巩固自己。

6-2 是否二叉搜索树

设计思路

代码截图

2.4 PTA提交列表说明

6-3 二叉搜索树中的最近公共祖先

2.2 设计思路(伪代码或流程图)

2.3 代码截图

2.4 PTA提交列表说明

7-1 QQ帐户的申请与登陆

2.2 设计思路

2.3 代码截图

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

4. 阅读代码

#include <map> 
map是使用红黑树实现的,访问、查找和删除操作的复杂度都是O(log2n),插入会比较慢。

map,顾名思义就是地图。其实就是key,value的对应。

当你需要快速的获取对应key的value的时候,就可以使用map了。例如一个人是有名字,但是这个人还有其他的属性,例如年龄,性别等等。这个人就会被封装为一个对象。如果有很多个人,我们需要快速的根据一个人的名字获取对应名字的对象,这个时候map就有用了。如果采用数组,我们需要遍历整个数组,才可以根据名字找到这个人。如果是map(以名字为key,以人的对象为value),就可以直接根据名字得到这个对象,就不需要遍历操作了。

  Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!
1. map最基本的构造函数;
   map<string , int >mapstring;         map<int ,string >mapint; //这样就定义了一个用int作为索引,并拥有相关联的指向string的指针.
   map<sring, char>mapstring;         map< char ,string>mapchar;
   map<char ,int>mapchar;            map<int ,char >mapint;
2. map添加数据;
   map<int ,string> maplive;  
   1.maplive.insert(pair<int,string>(102,"aclive"));
   2.maplive.insert(map<int,string>::value_type(321,"hai"));
   3, maplive[112]="April";//map中最简单最常用的插入添加!
3,map中元素的查找:
   find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。        
   map<int ,string >::iterator l_it;; 
   l_it=maplive.find(112);
   if(l_it==maplive.end())
                cout<<"we do not find 112"<<endl;
   else cout<<"wo find 112"<<endl;
4,map中元素的删除:
   如果删除112;
   map<int ,string >::iterator l_it;;
   l_it=maplive.find(112);
   if(l_it==maplive.end())
        cout<<"we do not find 112"<<endl;
   else  maplive.erase(l_it);  //delete 112

posted @ 2018-05-27 20:35  曾_钰尧  阅读(127)  评论(1编辑  收藏  举报