代码改变世界

博客作业05-查找

2018-05-27 15:57  工班  阅读(230)  评论(1编辑  收藏  举报

 

---恢复内容开始---

一、学习总结

1查找思维导图

2查找学习体验

查找的方法有很多种,要熟悉顺序查找和折半查找,索引储存结构和分块查找的平均查找长度。并且每个查找方法都有插入、删除、建表的代码,时间复杂度也各不相同,学的过程觉得还好,但是学完之后很多都混乱了,需要花大量的时间去复习,并去弄懂他们的区别和思路。还要多次打书上的代码才懂一点。

二:PTA实验作业

题目1:是否二叉树

1。设计思路

bool Is BST(Bintree T)

{

if树为空树则是二叉搜索树;

if树的左子树为空或右子树为空 ,返回false;

else if树的左子树和右子树都不为空

遍历右子树的新节点一定要大于根节点,左子树的新节点一定要小于根节点,左子树的各节点的值要小于右子树各节点的值,

成立,返回true,

,否则返回false。

}

2。代码截图

 

 3。PTA提交列表说明

 

 

 

编译错误:因为if else 没有分开,有点乱,还有思路不太清晰。很多都没有考虑到

部分正确:把右子树写成左子树了,导致两个都是左子树

 

题目2:二叉搜索树种的最近公共祖先

1.设计思路

int  find(Tree T,int u)

{

if 树为空返回0

if(u等于关键字则返回1)

if(u大于关键字,则查找右子树,反之,查找左子树)

}

int LCA( Tree T,  int u, int v ) {

if t为空则返回error

若不为空就v或u等于关键字,等于就返回关键字

if(u大于关键字,则返回左子树,反之,返回右子树)

}

2.代码截图

3。PTA提交说明

编译错误:不太了解思路,跟着参考的代码看了一下

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

1.基本思路

若新申请帐户成功,则输出“New: OK”;
若新申请的号码已经存在,则输出“ERROR: Exist”;
若老帐户登陆成功,则输出“Login: OK”;
若老帐户QQ号码不存在,则输出“ERROR: Not Exist”;
若老帐户密码错误,则输出“ERROR: Wrong PW

2.代码截图

 

3.提交截图

 

真的不会。

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

1.PTA排名

 

2.我的得分:115

四:阅读代码

 

 

 

阅读代码题目:是否二叉搜索树,她的思路很清晰,先定义一个变量最大值max和一个变量最小值min,先判断树T是否为空,若为空返回true,遍历找出最大值更新max, 如果max>根节点数据, 返回false  ,否则 T的右孩子为真 ,同上,递归调用T的左子树及右子树 ,点为最大值,右子树的为最小值。

 

 

---恢复内容结束---