您的位置:首页 > 理论基础 > 数据结构算法

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

2016-12-22 12:11 253 查看
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时,元素个数=rear-front。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐