数据结构(四)基础面试题二

数据结构


1.程序包括两个内容,分别是( 数据结构 )和( 算法 )。
2. 栈和队列的共同特点是( 只允许在端点处插入和删除元素 ) 。
3. 栈通常采用的两种存储结构是( 线性存储结构和链表存储结构 )。
4. 树是结点的集合,它的根结点数目是( 有且只有1个) 。
5. 在待排序的元素序列基本有序的前提下,效率最高的排序方法是( 冒泡排序 ) 。
6. 算法的复杂度主要包括( 时间复杂度 )和( 空间 复杂度 )。
7.( 基数 )排序不需要进行记录关键字间的比较。
8. 算法具有如下特点:( 有穷性 ) 、( 确定性 )、( 可行性 ) 、( 输入 )、( 输出 )。
9. 链表相对于顺序表的优点有( 插入 )和( 删除 )操作方便。
10. 顺序表相对于链表的优点有( 随机访问 ) 和( 空间利用率高 )。
11. 在双链表中,每个结点有两个指针域,一个指向( 前驱结点 ),另一个指向( 后续结点 )。
12. 循环链表的最大优点是( 从表中任意结点出发都可访问到表中每一个元素 )。
13.在循环链表中,课根据任一节点的地址遍历整个链表,而单链表中需知道( 头指针 )才能遍历整个链表。
14. 组成串的数据元素只能是( 字符 )。
15. 一维数组的逻辑结构是( 线性结构 ),存储结构是( 顺序存储结构 )。
16. 二维数组是一种非线性结构,其中的每一个数组元素最多有( 二 )个直接前驱( 或直接后继 )。
17. 具有n个结点的完全二叉树的深度为( log ⁡ 2 n + 1 \log_2n+1 log2n+1 )。
18. n个顶点的连通图至少有( n-1 )条边。
19.二分查找的存储结构仅限于( 有序的顺序存储结构 )。
20.顺序查找法的平均查找长度为( n + 1 2 \frac{n+1}{2} 2n+1 )。

算法


1.解释二分法如何工作?
在二分法检索中,我们先确定数组的中间位置,然后将要查找的值与数组中间位置的值进行比较,若小于数组中间值,则要查找的值应位于该中间值之前,依此类推,不断缩小查找范围,直至得到最终结果。
2.判断是否是循环链表?
设置两个指针,慢指针和快指针,让快指针比慢指针每次移动快两次。如果快指针追赶上慢指针,则为循环链表,否则不是循环链表,如果快指针或者慢指针指向NULL,则不是循环链表。
3.解释一个算法的最佳情况和最坏情况之间有什么区别?
·最佳情况:算法的最佳情况解释为算法执行最佳的数据排列。例如,我们进行二分法检索,如果目标值位于正在搜索的数据中心,则这就是最佳情况,最佳情况时间复杂度为0。
·最差情况:给定算法的最差输入参考。例如快速排序,如果选择关键值的子列表的最大或最小元素,则会导致最差情况出现,这将导致时间复杂度快速退化到O(n2)。
4.什么是递归算法?
递归算法是一个解决复杂问题的方法,将问题分解成较小的子问题,直到分解的足够小,可以轻松解决问题为止。通常,它涉及一个调用自身的函数。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值