查找

一.学习总结

1.查找的思维导图:

2.查找学习体会:查找可分为线性表查找,树表查找,哈希表查找三大类。不同的查找有着不同的查找效率,每一种查找都有其优缺点。其中线性表查找又可分为三种不同效率的查找,其中二分法查找效率最高,但也有局限,不对所有的表都适用。树表查找的平均查找长度(ASL)与树的高度有关,因此当树的元素较多时,一般二叉排序树的查找效率可能会降低,为了提高二叉排序树的查找效率,就有了平衡二叉树和B树,平衡二叉树和B树是高效率查找的二叉排序树,它们的出现都是为了提高树的查找效率。哈希表是一种不同于顺序表存储结构,链表存储结构,索引表存储结构的存储线性表的存储结构,由直接定址法,除留余数法,数字分析法三种基本方法来构造,但存在着哈希冲突,为了消除哈希冲突,有开放地址法,拉链法两种解决方法。只要构造好哈希表,哈希查找效率会非常高。

二.PTA实验作业

题目一:6-2  是否二叉搜索树

(1)设计思路:本题采用递归算法,定义指针p指向以T为根节点的树,若树不为空且存在孩子,则先把T->Left 赋值给指针p,判断T的左子树是否都小于根节点,满足则继续判断T的右孩子是否都大于根节点,若满足则递归IsBST函数判断T的左右孩子是否同样满足,满足返回true,即该树为二叉搜索树,否则返回false,即该树不是二叉搜索树。

(2)代码截图:

(3)PTA提交列表说明:

1.没有考虑到空树时的输出导致答案错误

2.没有正确使用变量导致编译错误

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

(1)设计思路:本题采用递归算法,自定义了一个find函数分别判断根节点T和u,v是否有关系,再递归判断T->Right及T->Left是否都和u,v有关系,满足题意则返回根节点的值,不满足则返回ERROR。

(2)代码截图:

(3)PTA提交列表说明:

1.变量使用错误导致编译错误

2.多种情况考虑不全导致部分正确

题目三:7-1  QQ账户的申请与登陆

(1)设计思路:本题采用哈希表存储账户信息,采用除留余数法建哈希表,若输入信息正确,则返回true,若输入信息有误,返回相应错误信息。

(2)代码截图:

(3)PTA提交列表说明:

1.编译环境错误导致编译错误

三.本周题目集的PTA排名:

本次题目集总分:175分

必做题共:145分

(1)PTA排名:43

(2)我的总分:120

四.阅读代码:

1.代码截图

2.代码解读:该查找算法使用除留余数法存储地址信息,用线性探测法处理哈希冲突,用指针p记录键值k除留余数法后的地址,访问该地址的键值是否与k相同,不相同则地址加1,直至找到k值所在的地址,查找成功返回该地址,查找失败返回查找失败提示。

 

posted on 2018-05-27 21:19  小柠  阅读(290)  评论(1编辑  收藏  举报

导航