博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博客作业05--查找
阅读量:4357 次
发布时间:2019-06-07

本文共 1850 字,大约阅读时间需要 6 分钟。

1.学习总结

1.1查找的思维导图

1232126-20180527221704301-1388276915.png

1.2 查找学习体会

查找算法有很多,其中线性表的查找有顺序查找,折半查找,分块查找,树表的查找有二叉排序树,平衡二叉树,B+树,B-树,还有哈希表查找;这些算法都各有各的优点和缺点;在实际运用中如果要运用的话,更方便的还是使用STL容器中查找,很多复杂的代码都可以用一句解决,可以通过insert函数来插入,通过find函数来查找map容器中是否存在id。总之使用起来很方便。

2.PTA实验作业

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

2.2 设计思路

map
qq;输入nwhile(n--){ 输入命令,账号,密码 如果命令为N 查找号码是否已经存在 若存在,输出错误提示,否则插入map 否则查找号码是否已经注册 若未注册,输出错误提示 否则验证密码是否正确 若正确,提示登录成功 否则,提示密码错误}

2.3 代码截图

1232126-20180522211720012-685234383.png

2.4 PTA提交列表说明

题目比较简单,一遍就过,无调试问题。

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

2.2 设计思路

定义全局变量lastNode来保存上一个结点的值如果树空,返回true递归左子树,如果不满足条件,返回false如果T->Data不大于lastNode,返回falselastNode=T->Data;递归右子树,如果不满足条件,返回false

2.3 代码截图

1232126-20180522212841107-687865407.png

2.4 PTA提交列表说明

刚开始提交时出现部分错误,看测试点发现自己没有考虑空树时的情况,于是修改了下代码,提交时发现还有一个点怎么也过不了,后来重新理清思路,重新写了一下就对了。

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

2.2 设计思路

map
vip;定义n,k,mile表示里程,m定义字符数组id存身份证号while(n--){ 当里程小于k,mile=k; 若身份证号码存在,累加mile 否则插入新信息}while(m--){ 查找身份证号,若查找到,输出里程 否则输出No Info}

2.3 代码截图

1232126-20180527171214549-247744869.png

2.4 PTA提交列表说明

这题因为有老师提示不能用cin,cout输入输出,否则会时间超限。

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

3.1 PTA排名

1232126-20180526203221237-608242443.png

3.2 我的总分:

145

4. 阅读代码

@Override public V remove(Object key) {    if (key == null) {        return removeNullKey();    }    int hash = Collections.secondaryHash(key);    HashMapEntry
[] tab = table; int index = hash & (tab.length - 1); for (HashMapEntry
e = tab[index], prev = null; e != null; prev = e, e = e.next) { if (e.hash == hash && key.equals(e.key)) { if (prev == null) { tab[index] = e.next; } else { prev.next = e.next; } modCount++; size--; postRemove(e); return e.value; } } return null;}

当hash相同&&key值也相同,那么就说明找到了要删除的元素;prev==null说明刚开始遍历就找到了元素,那么就说明元素是头结点。代码简洁,还调用了一些其他的函数,写的很规范。

5. 代码Git提交记录截图

1232126-20180529230202100-1262622040.png

转载于:https://www.cnblogs.com/yanweijie666/p/9074253.html

你可能感兴趣的文章
20180528小测
查看>>
spring和spring mvc的配置文件
查看>>
VSS+SourceAnywhere for VSS搭建版本控制系统教程
查看>>
TCP : two different sockets sharing a port?
查看>>
unix系统编程小结(二)------文件和目录
查看>>
ubuntu 创建用户
查看>>
Summary: gcd最大公约数、lcm最小公倍数算法
查看>>
JS实现HashMap
查看>>
linux mysql
查看>>
android 68 单元测试
查看>>
centos 6.3 64位安装php5.5及配置tengine
查看>>
进入页面就触发了popstate事件。
查看>>
AntDesign vue学习笔记(六)Table 显示图片
查看>>
Bootstrap框架(基础篇)之按钮,网格,导航栏,下拉菜单
查看>>
day16 Python 类的关联关系
查看>>
request.getParameter() 和request.getAttribute() 区别
查看>>
本地win8系统部署网站遇到的问题
查看>>
MySQL安装,启动
查看>>
JAVA基础知识总结
查看>>
UVA 101 - The Blocks Problem(模拟)
查看>>