首页 > 其他 > 详细

博客作业05--查找

时间:2018-05-27 23:04:36      阅读:429      评论:0      收藏:0      [点我收藏+]

一、学习总结

1、查找的思维导图

技术分享图片

2、查找学习体会

  本章的查找方法很多,都有各自的优缺点。对于线性表的查找掌握得比较好,并不能独立的写出树表或者哈希表的查找。本人感觉哈希表是最为便利的一种查找方法,理解过后还是要靠不断的巩固练习。

二、PTA实验作业

1.1、题目1:6-2 是否二叉搜索树

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

  子函数int Max(BinTree BST)返回二叉树BST中最大的数,同理,子函数int Min(BinTree BST)返回二叉树BST中最小的数。在二叉树中若保持左子树的最大值和右子树的最小值分别恒小于、大于根节点的数,则返回ture。显而易见,可构建递归函数。

1.3、代码截图

技术分享图片

1.4、PTA提交列表说明

技术分享图片

 

 

前面代码的思路是:根节点的数据分别大于其左子树,小于其右子树。忽略了如果根节点左子树的右子树大于根节点的数据等情况。

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

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

  先把u经过的结点保存到数组a[]中,再将u经过的结点保存到数组b[]中,从后面开始查找,如果两数组的某值相等则为公共祖先。

2.3、代码截图

技术分享图片

2.4、PTA提交列表说明

技术分享图片

在求u经过的节点时,由于采用了递归函数,前两次都误将其他节点当作u经过的结点,导致出错。后来发现错误:T==NULL时应返回0而不是返回m。在操作过程中,粗心大意,忘记分析如果该节点为u时的操作。

3.1、题目3:7-1 QQ帐户的申请与登陆

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

  这题的思路很清晰,通过L和N判断新用户还是老用户,然后再一步步往下走。难点在于如何利用STL中的map快速解决。

3.3、代码截图

技术分享图片

3.4、PTA提交列表说明

 技术分享图片

三、截图本周题目集的PTA最后排名

技术分享图片

四、阅读代码

1、问题描述:针对某个集体(比如你所在的班级)中的“人名”设计一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序。

2、基本要求:假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用伪随机探测再散列发处理冲突。

3、数据结构设计:

技术分享图片

4、主要算法设计

(1)、姓名(结构体数组)初始化

    名字以拼音的形式够成字符串,将字符串的各个字符所对应的ASCII码相加,所得的整数做为哈希表的关键字。

 技术分享图片

 (2)、建立哈希表   

       用除留余数法构建哈希函数,用伪随机探测再散列法处理冲突

 技术分享图片

(3)、查找哈希表

  在哈希表中进行查找,输出查找的结果和关键字,并计算和输出查找成功的平均查找长度

 技术分享图片

(4)、显示哈希表

 技术分享图片

(5)、主函数

 技术分享图片

 

博客作业05--查找

原文:https://www.cnblogs.com/renjs/p/9097846.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!