二级公共基础知识
第一部分 数据结构 (5-6 个题目,占 10 分 )
*1. 所谓算法是指解题方案的准确而完整的描述。严格来说,一个算法必须具有以下五个主
要特征:
有穷性 确定性 可行性 输入 输出(或说成:拥有足够的情报 )
2.算法的组成要素
算法中对数据的运算和操作及算法的控制结构
3.算法设计基本方法
列举法 归纳法 递推 递归 减半递推 回溯法
*4. 算法的复杂度可分为时间复杂度和空间复杂度,是衡量算法优劣的量度。
(1)算法的时间复杂度:算法的时间复杂度是指执行算法所需要的工作量。一般情况下,
算法的时间复杂度为算法中的基本操作重复执行的次数。是问题规模 n 的某个函数 f(n) 。
(2 )算法的空间复杂度:算法的空间负杂度是指执行这个算法所需要的内存空间。
5.数据结构的定义
是指相互有关联的数据元素的集合。 (一定要注意是数据元素的集合, 不是数据的集合)
*6. 数据结构主要研究三个方面的问题:
1) 逻辑结构是各数据元素之间的逻辑关系。 它与在计算机中的存储位置无关, 是独立于计
算机的。
2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。
3)对各种数据结构进行的运算。
7. 常见的存储结构:
顺序存储结构 链式存储结构 索引存储结构 散列存储结构
一般分为:线性存储和非线性存储
8. 线性表的顺序存储结构用一组地址连续的存储单元依次存放线性表中的数据元素,即以
“存储位置相邻”表示“存储,表中第一个元素的存储位置作称作线性表的基地址。
所有数据元素的存储位置均可由第一个数据元素的存储位置得到
ADR(ai) = ADR(a1) + (i- 1) ×C
↑ ↑
基地址 一个数据元素所占存储量
9. 线性表的插入和删除运算最坏的时间复杂度为 O(n-1),最好为 O(o).
10. 栈是限定仅在表的一端进行插入和删除操作的线性表。 允许插入和删除的一端称为栈顶,
另一端称为栈底。 栈顶元素总是最后被插入的元素, 从而也是最先被删除的元素; 栈底元素
总是最先被插入,也是最后被删除的元素。栈是一种后进先出的线性表。通常用指针 top 指
示栈顶位置,用指针 bottom 指示栈底位置。
11. 栈的操作有:
入栈:在栈顶位置插入一个新元素,栈顶指针 top 加 1。
退栈:取出栈顶元素并赋值给一个指定的变量,栈顶指针 top 减 1。
取栈顶元素:将栈顶元素的值赋给一个指定的变量,不删除栈顶元素,栈顶指针不变。
12. 如果某栈的入栈顺序是 ABCDEF,则出栈顺序不可能是哪个( C) (此类型的题目一定
要会推导)
A 、DCEFBA B、ABCDEF C、EDFCAB D、CBAEDF
13. 队列是一种先进先出的线性表,它只允许在表的一端插入元素 ( 队尾 ),在另一端删除元
素( 队头 )。通常定义头指针 front 指向队头元素的前一个位置,定义尾指针 rear 指向队尾元
素的位置。队列是一种先进先出的数据结构。
14. 循环队列是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。
容量的计算:
* 当 rear>front 时,元素个数= rear -front ;
* 当 rear