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
}