2022 年 408 真题2022 年 408 数据结构 · 第 42 题选中文字高亮 · 下划线现有 n(n > 100000)个数保存在一维数组 M 中,需要查找 M 中最小的 10 个数,请回答下列问题。 (1) 设计一个完成上述查找任务的算法,要求平均情况下的比较次数尽可能少,简单描述其算法思想,不需要程序实现。 (2) 说明你所设计的算法平均情况下的时间复杂度和空间复杂度。←上一题已知非空二叉树 T 的结点值均为正整数,采用顺序存储方式保存,数据结构定义如下: typedef struct { // MAX_SIZE 为已定义常量 Elemtype SqBiTNode[MAX_SIZE]; // 保存二叉树结点值的数组 int ElemNum; // 实际占用的数组元素个数 }SqBiTree; T 中不存在的结点在数组 SqBiTNode 中用 -1 表示。例如,对于下图所示的两棵非空二叉树 T1 和 T2: T1 的存储结果如下: T2 的存储结果如下: 请设计一个尽可能高效的算法,判定一棵采用这种方式存储的二叉树是否为二叉搜索树,若是,则返回 true,否则,返回 false,要求: (1) 给出算法的基本设计思想。 (2) 根据设计思想,采用 C 或 C++ 语言描述算法,关键之处给出注释。下一题已知头指针 h 指向一个带头结点的非空单循环链表,结点结构为 其中 next 是指向直接后继结点的指针,p 是尾指针,q 是临时指针。现要删除该链表的第一个元素,正确的语句序列是( )。→