数据结构经典面试题——练习4

1.一个算法通常由两种基本要素组成:一是对数据对象的运算和操作,二是算法的控制结构。
算法的复杂度主要包括时间复杂度和 空间 复杂度。

2. 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的空间复杂度和时间复杂度 。

3. 所谓数据处理是指对数据集合中的各元素以各种方式进行运算,包括插入、删除、查找、更改等运算,也包括对数据元素进行分析。

4. 数据结构是指相互有关联的 数据元素 的集合。

5. 数据结构分为逻辑结构与存储结构,线性链表属于 存储结构 。

6. 数据结构包括数据的 逻辑 结构和数据的存储结构。

7. 数据结构包括数据的逻辑结构、数据的 存储结构 以及对数据的操作运算。

8. 数据元素之间的任何关系都可以用 前趋和后继 关系来描述。

9. 数据的逻辑结构有线性结构和非线性结构两大类。

10. 常用的存储结构有顺序、链接、 索引 等存储结构。

11. 顺序存储方法是把逻辑上相邻的结点存储在物理位置    相邻 的存储单元中。

12. 栈的基本运算有三种:入栈、退栈与读栈顶元素 。

13. 队列主要有两种基本运算:入队运算与 退队运算 。

14. 在实际应用中,带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,这种带链的栈称为 可利用栈 。

15. 栈和队列通常采用的存储结构是 链式存储和顺序存储   

16. 当线性表采用顺序存储结构实现存储时,其主要特点是 逻辑结构中相邻的结点在存储结构中仍相邻 。

17. 循环队列主要有两种基本运算:入队运算与退队运算。每进行一次入队运算,队尾指针就 进 1

18. 当循环队列非空且队尾指针等于对头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 上溢   

19. 当循环队列为空时,不能进行退队运算,这种情况称为 下溢 。

20. 在一个容量为 25 的循环队列中,若头指针 front=16 ,尾指针 rear=9 ,则该循环队列中共有 18 个元素。注: rear<front 时,元素个数=总容量-( front rear );
rear>front时,元素个数= rearfront

21. 在一个容量为 15 的循环队列中,若头指针 front=6 ,尾指针 rear=9 ,则该循环队列中共有 3 个元素。

22. 顺序查找一般是指在 线性表 中查找指定的元素。

23. 在计算机中存放线性表,一种最简单的方法是 顺序存储 。

24. 在程序设计语言中,通常定义一个 一维数组 来表示线性表的顺序存储空间。

25. 在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域,另一部分用于存放指针,称为 指针域 。其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。

26. 在 线性单链表中 ,每一个结点只有一个指针域,由这个指针只能找到后继结点,但不能找到前驱结点。

27. 为了要在线性链表中插入一个新元素,首先要给该元素分配一个 新结点 ,以便用于存储该元素的值。

28. 在线性链表中删除一个元素后,只需要改变被删除元素所在结点的前一个结点的 指针域 即可。

29. 用链表表示线性表的突出优点是 便于插入和删除操作 。

30. 在树形结构中,树根结点没有    前件 。

31. 在树结构中,一个结点所拥有的后件个数称为该结点的度。叶子结点的度为 0

32. 设一棵二叉树中有 3 个叶子结点, 8 个度为 1 的结点,则该二叉树中总的结点数为 13

33. 设一棵完全二叉树共有 739 个结点,则在该二叉树中有 370 个叶子结点。

34. 设一棵完全二叉树共有 700 个结点,则在该二叉树中有 350 个叶子结点。

35. 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、 中序 遍历和后序遍历。

36. 若串 S="Program" ,则其子串的数目是 29 。 注: n(n+1)/2+1

37. 若串 S=”MathTypes” ,则其子串的数目是 46

38. 对长度为 n 的线性表进行插入一个新元素或删除一个元素时,在最坏情况下所需要的比较次数为 n

39. 在长度为 n 的有序线性表中进行顺序查找。最坏的情况下,需要的比较次数为    n  

40. 在长度为 n 的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为 log2n

41. 长度为 n 的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 n/2

42. 排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、 交换排序 和选择排序等。

43. 快速排序法可以实现通过一次交换而消除多个 逆序 。

44. 快速排序法的关键是对线性表进行 分割 。

45. 冒泡排序算法在最好的情况下的元素交换次数为 0

46. 在最坏情况下,冒泡排序的时间复杂度为 n(n-1) /2

47. 对于长度为 n 的线性表,在最坏情况下,快速排序所需要的比较次数为 n(n-1) /2

48. 在最坏情况下,简单插入排序需要比较的次数为 n(n-1) /2

49. 在最坏情况下,希尔排序需要比较的次数为 O(n1.5) 。注:括号里是 n 1.5 次方。

50. 在最坏情况下,简单选择排序需要比较的次数为 n(n-1) /2

51. 在最坏情况下,堆排序需要比较的次数为 o(nlog2n)

52. 对于输入为 N 个数进行快速排序算法的平均时间复杂度是 O(Nlog2 N) S

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值