博客作业05--查找

1.学习总结

1.1查找的思维导图

1234123-20180528003538745-842608186.gif

1.2 查找学习体会

  • 1、map简介
    map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。
    对于迭代器来说,可以修改实值,而不能修改key。
  • 2、map的功能
    自动建立Key - value的对应。key 和 value可以是任意你需要的类型。
  • 3、查找方式及使用
    目前知道的有map.find(关键字) 和 map.count(关键字)两种,使用count,返回的是被查找元素的个数。如果有,返回1;否则,返回0。注意,map中不存在相同元素,所以返回值只能是1或0。使用find,返回的是被查找元素的位置,没有则返回map.end()。

2.PTA实验作业(4分)

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

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

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
定义map<string,string>a;
int n,i;
char k[2],QQnum[12],password[25];//新老用户选择,QQ号,QQ密码
输入行数n
for i=0 to n输入选择k如果是老用户输入QQnum,passwordif(a[QQnum].empty()){//不存在 输出"ERROR: Not Exist\n"}else{如果密码正确,输出"Login: OK\n"否则 输出"ERROR: Wrong PW\n"}end if如果是新用户 输入QQnum,passwordif(a[QQnum].empty()){//不存在 a[QQnum]=password;//创建账号输出"New: OK\n"}else{//存在 输出"ERROR: Exist\n"//账号已存在}end if

2.3 代码截图

1234123-20180526230509138-6223559.png

2.4 PTA提交列表说明。

1234123-20180526230543017-459929334.png

这题主要是原来代码L和N的判断用的是字符c类型输入判断的1234123-20180526230557230-1515866237.png,但是输出结果一直不对1234123-20180526230714936-1618697627.png,看网上代码用的字符串数组来判断,修改后就可以了。

2.1 题目2:6-3 二叉搜索树中的最近公共祖先

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

int LCA( Tree T, int u, int v ){//找最近公共祖先如果调用Find函数发现是空树或者找不到 返回ERRORif(v == T->Key || u == T->Key)    return T->Key;if v节点和u节点分别在T->Key两侧 return T->Key;return   (v<T->Key?(LCA(T->Left,u,v)):(LCA(T->Right,u,v)));
}
int Find(Tree BST, int X) {//在树种寻找X节点if (!BST) return 0;if 在树中找到该节点 返回1if (X > BST->Key) {return Find(BST->Right, X);//从该节点的右孩子继续查找}else if (X < BST->Key) return Find(BST->Left, X);//从做孩子就继续查找
}

2.3 代码截图

1234123-20180528004536444-1613640831.png

2.4 PTA提交列表说明。

1234123-20180528004547099-1303738059.png
部分正确:一开始没有考虑到v == T->Key || u == T->Key时的情况,导致部分测试点过不了,增加条件即可。

2.1题目3:7-2 航空公司VIP客户查询

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

int main(){int n,k,i;//n为查询人数k为最低里程输入n,kchar idcard[20];//定义身份证号long long flyway;//定义里程map<string,long long>Map;for i=0 to n {输入身份证号输入里程数如果该用户里程数<最低里程数 flyway=k;if(!Map.count(idcard)) Map[idcard] = 0;//不是会员Map[idcard]+=flyway;//累加里程数}输入要查询的人数nfor i=0 to n {输入身份证号if(!Map.count(idcard))    输出"No Info\n"//不是会员 else 输出该会员里程数} 
} 

2.3 代码截图

1234123-20180528004123766-7632260.png

2.4 PTA提交列表说明。

1234123-20180528004222854-1126109869.png
这题参考网上的代码自己慢慢理解map怎么用的,部分正确出现的问题主要是超时,把所有cin改成scanf,再把数组的大小改一下,就通过了,试着试着通过的一道题。

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

本次题目集总分:175分
必做题共:145分

3.1 PTA排名(截图带自己名字的排名)

1234123-20180526225040715-1649880207.png

(32林艺薇)

3.2 我的总分:145

4. 阅读代码(必做,1分)

  • HashMap中红黑树的查找函数find()实现
/** * 调用树的find()函数 */  final TreeNode<K,V> getTreeNode(int h, Object k) {  return ((parent != null) ? root() : this).find(h, k, null);  }  
[java] view plain copy/** * 从根节点p开始查找指定hash值和关键字key的结点 * 当第一次使用比较器比较关键字时,参数kc储存了关键字key的 比较器类别 */  final TreeNode<K,V> find(int h, Object k, Class<?> kc) {  TreeNode<K,V> p = this;  do {  int ph, dir; K pk;  TreeNode<K,V> pl = p.left, pr = p.right, q;  if ((ph = p.hash) > h)           //如果给定哈希值小于当前节点的哈希值,进入左节点  p = pl;  else if (ph < h)             //如果大于,进入右结点  p = pr;  else if ((pk = p.key) == k || (k != null && k.equals(pk)))  //如果哈希值相等,且关键字相等,则返回当前节点  return p;  else if (pl == null)        //如果左节点为空,则进入右结点  p = pr;  else if (pr == null)        //如果右结点为空,则进入左节点  p = pl;  else if ((kc != null ||  (kc = comparableClassFor(k)) != null) &&  (dir = compareComparables(kc, k, pk)) != 0)        //如果不按哈希值排序,而是按照比较器排序,则通过比较器返回值决定进入左右结点  p = (dir < 0) ? pl : pr;  else if ((q = pr.find(h, k, kc)) != null)       //如果在右结点中找到该关键字,直接返回  return q;  else  p = pl;                             //进入左节点  } while (p != null);  return null;  } 

链接:https://blog.csdn.net/ymrfzr/article/details/51243766
函数注释很详细,find()函数里有对多种情况进行讨论,直接调用map.h后续功能的实现就很方便,像查找,如果用树来实现,建树,再遍历查找,代码量很大,但是调用Map的话,利用find(),代码精简了很多,我们只要知道原理就可以了。find()函数原理:如果找到会返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。

5. 代码Git提交记录截图

1234123-20180526224536786-1827597659.png

转载于:https://www.cnblogs.com/linyiwei/p/9094624.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 列表 mysql in_关于mysql:内嵌要在python MySQLDB IN子句中使用的列表

我知道如何将列表映射到字符串&#xff1a;foostring ",".join( map(str, list_of_ids) )而且我知道我可以使用以下命令将该字符串放入IN子句中&#xff1a;cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % (foostring))我需要使用MySQLDB安全地…

EasyTimer

转载于:https://www.cnblogs.com/Microshaoft/archive/2012/06/16/2552278.html

Dubbo的优化 --- 开发时使用

开发时的三个优化&#xff1a; 1、开发者在本地开发的时候启动Dubbo比较麻烦&#xff0c;所以采用直接连接的配置&#xff1b; 2、开发者本地开发时会打断点调试&#xff0c;会超过Dubbo默认的超时时间1s&#xff0c;所以需要全局设置超时时间&#xff1b; 3、开发者本地时可能…

MYSQL复制的几种模式

MYSQL复制的几种模式 MySQL 5.1 中&#xff0c;在复制方面的改进就是引进了新的复制技术&#xff1a;基于行的复制。MYSQL复制的几种模式 MySQL 5.1 中&#xff0c;在复制方面的改进就是引进了新的复制技术&#xff1a;基于行的复制。 简言之&#xff0c;这种新技术就是关注表中…

Code:目录

ylbtech-Code&#xff1a;目录1.返回顶部 1、https://github.com/2.返回顶部1、https://gitee.com2、3.返回顶部4.返回顶部5.返回顶部 6.返回顶部作者&#xff1a;ylbtech出处&#xff1a;http://ylbtech.cnblogs.com/本文版权归作者和博客园共有&#xff0c;欢迎转载&#xff…

微软系统修复工具(试用版)

Microsoft Fix it Center 使获得支持从未有过如此简单&#xff0c;因为自动疑难解 答程序将解决您的现有问题并防患于未然。 为您的设备定制了解决方案&#xff0c;仅显示与您的硬件 和软件相关的信息。 Microsoft Fix it Center 使您能轻松控制并支持您所有的设备。 下载地址…

java 会话共享_java – servlet如何工作?实例化,会话,共享变量和多线程

假设,我有一个拥有大量servlet的Web服务器.对于在这些servlet之间传递的信息,我正在设置会话和实例变量.现在,如果有2个或更多用户向此服务器发送请求,那么会话变量会发生什么&#xff1f;它们对所有用户都是通用的,或者对于每个用户而言都是不同的.如果它们不同,那么服务器如何…

Redis主从实战

为了提升redis高可用性&#xff0c;除了备份redis dump数据之外&#xff0c;还需要创建redis主从架构&#xff0c;可以利用从将数据库持久化&#xff0c;&#xff08;我们所说的数据持久化将是将数据保存到写磁盘上&#xff0c;保证不会因为断电等因素丢失数据&#xff09; Red…

java 基础面试 英文_[Java面试] 面试java基础总结大全

原标题&#xff1a;[Java面试] 面试java基础总结大全基础知识&#xff1a;1、JVM、JRE和JDK的区别&#xff1a;JVM(Java Virtual Machine):java虚拟机&#xff0c;用于保证java的跨平台的特性。java语言是跨平台&#xff0c;jvm不是跨平台的。JRE(Java Runtime Environment):ja…

在win7环境下使用网络无线共享把电脑变成一台无线路由器

视频教程&#xff1a; http://www.tudou.com/programs/view/PuWxjgYE2Sw/?frrec1&FRLIAN&refid7d145a79fe0ff49f 其中有几点的注意是要把网络设置为WEP、这样的通用性会广泛点、安全性会差点、看实际情况吧、可以先试试用WAP2加密方式、

Ubuntu下安装SSH服务

判断是否安装ssh服务&#xff0c;可以通过如下命令进行&#xff1a;$ ssh localhost ssh: connect to host localhost port 22: Connection refused 如上所示&#xff0c;表示没有还没有安装&#xff0c;可以通过apt安装&#xff0c;命令如下&#xff1a;apt-get install opens…

php字符串怎么传到html_php字符串函数(四):html与字符串之间的转换

* 1.addslashes($str):为了数据库查询语句等的需要在某些字符前加上了反斜线:单引号,双引号,反斜线,建议使用DBMS自带的:mysqli_real_escape_string()* 2.stripslashes($str):功能与addslashes()相反,去掉字符串中的转义反斜线字符* 3.htmlspecialchars($str,FLAG):将特殊字符转…

【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

本系列文章由zhmxy555&#xff08;毛星云&#xff09;编写&#xff0c;转载请注明出处。http://blog.csdn.net/zhmxy555/article/details/7707628作者&#xff1a;毛星云 邮箱&#xff1a; happylifemxy163.com 期待着与志同道合的朋友们相互交流上一节里我们介绍了在迈入…

thinkphp省略php,ThinkPHP的截取字符串函数无法显示省略号的解决方法

对于ThinkPHP的截取字符串函数无法显示省略号的情况&#xff0c;解决方法如下&#xff1a;打开Common/extend.php页面&#xff0c;修改msubstr函数如下&#xff1a;function msubstr($str, $start0, $length, $charset"utf-8", $suffixtrue){if(function_exists(&quo…

Python Day 21 面向对象 (面向对象的三大特性(二)继承,多态,封装,几个装饰器函数)...

Python Day 21 面向对象 (面向对象的三大特性&#xff08;二&#xff09;继承&#xff0c;多态&#xff0c;封装&#xff0c;几个装饰器函数) https://mubu.com/doc/1AqL_M0IbW 继承之钻石继承 多态 封装 几个装饰器函数 classmethod 可以通过类使用被装饰的方法staticmethod …

将Fri May 04 17:25:34 CST 2012形式的日期字符串转换成java.util.Date对象的方法

java.util.Date类的toString()方法默认生成"Fri May 04 17:25:34 CST 2012"形式的字符串&#xff0c;但从这样的字符串生成java.util.Data对象却不那么自然&#xff0c;如下述代码 Date a new Date(); SimpleDateFormat sdf new SimpleDateFormat( "…

php webservice 上传,PHP实现WebService服务

第一步&#xff0c;安装PHP扩展SOAP并开启扩展&#xff0c;是否开启成功以phpinfo为准。第二步&#xff0c;创建服务端文件server.php{public functionhello(){return "Hello World!";}public function sum($num1,$num2){return $num1$num2;}}//创建 SoapServer 对象…

微信小程序小结(3) -- 使用wxParse解析html及多数据循环

wxParse-微信小程序富文本解析组件&#xff1a;https://github.com/icindy/wxParse 支持Html及markdown转wxml可视化 使用 1、copy下载好的文件夹wxParse - wxParse/-wxParse.js(必须存在)-html2json.js(必须存在)-htmlparser.js(必须存在)-showdown.js(必须存在)-wxDiscode.js…

简单实用的分页存储过程,支持多字段排序

CREATE PROCEDURE [dbo].[PublicSplitPage_sp] TableName varchar(8000), --表名 SqlStr varchar(8000)null, --查询语句 Condition varchar(8000), --查询条件 PageIndex int, --页所引&#xff0c;从0开始 PageSize int, --分页大…

php响应超过三十秒会报错么,如何捕捉致命错误:PHP中超过30秒的最大执行时间...

你唯一的select是增加允许的执行时间(将其设置为0使其无限&#xff0c;但不推荐)或产生一个新的线程&#xff0c;并希望最好的。这是不可捕捉的原因是它并没有真正抛出。 没有一行代码实际上触发了这个错误&#xff0c;而是PHP说&#xff1a;“不&#xff0c;不好意思&#xff…