本文章部分资料来源:蜂考_数据结构_pdf,本文章不用于商业用途,仅用于自学,侵删
知识点:
以下习题均来自PTA
判断题:
1、 递归计算斐波那契数列的时间复杂度为 O(2^n) √
2、 (logn)^2 is O(n). √
3、 一个算法可能需要输入,也可能不需要输入,但每个算法至少要产生一个结果作为输出。√
4、 N * log(N^2) 和 N * log(N^3) 具有相同的增长速度。 √
5、 算法分析的两个主要方面是时间复杂度和空间复杂度的分析。 √
6、 链表是一种随机存取的存储结构。 ×
顺序存储(例如数组)是一种随机存取的结构(即可以通过起始单元加减下标存取),而链表则是一种顺序存取结构
7、 线性表中的所有数据元素的数据类型必须相同。 √
8、 数组可以应用顺序式存储结构,也可以应用链式存储结构 √
9、 非空线性表只有唯一的开始结点。 √
10.N^2 * logN和N * logN^2具有相同的增长速度。×
11.将N个数据按照从小到大顺序组织存放在一个单向链表中。如果采用二分查找,那么查找的平均时间复杂度是O(logN) ×
二分查找是不可以用链表存储的
12、数组可以应用顺序式存储结构,也可以应用链式存储结构。√
13、非空线性表只有唯一的开始结点。 √
14、非空线性表除终端结点外,每个结点都有唯一的后继结点。 √
选择题:
1、 在数据结构中,从逻辑上可以把数据结构分成(线性结构和非线性结构 )。2、 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着(不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致 )。
3、 递归求整数n(n>=0)的阶乘的时间复杂度为(O(n))。
4、 将线性表La和Lb头尾连接,要求时间复杂度为O(1),且占用辅助空间尽量小。应该使用(带尾指针的单循环链表)的结构
5、 带头结点的单链表h为空的判定条件是:(h->next == NULL;)
6、 对于一非空的循环单链表,h和p分别指向链表的头、尾结点,则有:(p->next == h)
7、 线性表、堆栈、队列的主要区别是什么? (堆栈和队列都是插入、删除受到约束的线性表)
8.与数据元素本身的形式、内容、相对位置、个数无关的是数据的(逻辑结构 )。
9.流程图是描述算法的很好的工具,一般的流程图中由几种基本图形组成。其中判断框的图形是(菱形)
10.将两个结点数都为N且都从小到大有序的单向链表合并成一个从小到大有序的单向链表,那么可能的最少比较次数是:N
11.非空线性表具有哪些结构特征? ( 只有唯一的开始结点和唯一的终端结点,除开始结点外,每个结点只有一个前驱结点,除终端结点外,每个结点只有一个后继结点. )