DS博客作业05--查找

0.PTA得分截图

1.本周学习总结(0-4分)

1.1 总结查找内容

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

2.PTA题目介绍(0--6分)

2.1 题目1(2分)

2.1.1 该题的设计思路

利用 完全二叉树层序遍历在数组中是连续的,来解题。
若结点为空,则在数组中输入-1;利用数据是否连续不为-1来判断是否位完全二叉树。
时间复杂度:O(N)

2.1.2 该题的伪代码

if(T!=NULL) T入队列,T值入数组
while(队不空)
{
if(队头->lchild!=NULL) 队头->lchild入队列 ,队头->lchild值入数组
else 数组值为-1;
if(队头->rchild!=NULL) 队头->rchild入队列 ,队头->rchild值入树组
else 数组值为-1;
输出队头
队头出队
}
for(j<N) if(数组[j]==-1) cout<<"NO"; return;
cout<<"YES";

2.1.3 PTA提交列表


刚开始没注意到题目要求左大右小,有点错。
还有就是队列结点值入数组的时候,在出队的时候入的数组,就会发生-1入树组时在结点值前面。
以至于后面再判断是否完全二叉树时出现错误。后统一改为入队时就入数组。
还有就是再最大N的时候出现错误,题目给的是不大于20的N,可是测试点的N 似乎大于20,
将数组界限改为100就过了。

原文地址:https://www.cnblogs.com/you-18250630840/p/12944981.html