DS博客作业07——查找

1.本周学习总结

1.1思维导图

1.2.谈谈你对查找运算的认识及学习体会。

2.PTA实验作业

2.1.是否二叉搜索树

2.1.1设计思路

定义全局数组a
中序遍历二叉树
{
if T存在
递归遍历左孩子
得到的数据放入数组a
递归遍历右孩子
}
判断数组a是否升序
{
for j=1 to i
if a[j-1]>a[j]//有一对数据不是升序
return false ;
end if
return true;//全部没问题返回true;
}

2.2.2代码截图

2.2.3本题PTA提交列表说明


利用搜索二叉树的特性,即中序遍历得到的顺序为升序,即可快速解答此题。

2.2.二叉搜索树中的最近公共祖先

2.2.1设计思路

Find(Tree T ,int u)
{
if(!T)
return 0;//找不到
end if
如果Key大于要找的数,去左孩子
如果Key小于要找的数,去右孩子
等于的话返回1
}
LCA(Tree T,int u,int v)
{
if(!T) return REEOR//找不到
end if
Key的大小在v和u之间,那T就是公共祖先 return T->Key
Key等于u和v中的一个,那T也是祖先 return T->Key
如果Key比u和v小,去右孩子找祖先
如果Key比u和v大,去左孩子找祖先
前面的判断中不能跳出,则找不到 return ERROR
}

2.2.2代码截图

2.2.3本题PTA提交列表说明

2.3

2.3.1设计思路

2.3.2代码截图

2.3.3本题PTA提交列表说明

猜你喜欢

转载自www.cnblogs.com/qsls8643/p/11031425.html