一、判断题
- 在单链表中,要访问某个结点,只要知道该结点的指针即可。因此,单链表是一种随机存取结构。 F
- 线性表的顺序存储表示优于链式存储表示。 F
- 栈是一种特殊的线性表,它的插入和删除操作都是在表的同一端进行。 T
- 进栈、出栈操作的次序做了限制的线性表。 F
- 在单链表中,逻辑上相邻的元素,其物理位置必定相邻。 F
- 在带头结点的非空单链表中,头结点的存储位置由前驱结点指示。 F错(它是单链表,怎么可能由前驱节点指示呢)
- 时间复杂度是根据算法写成的程序在执行时耗费时间的长度,往往与输入数据的规模有关。 T
- 带头结点的单循环链表中,任一结点的后继结点的指针域均不空。 T
- 队列是后进先出的线性表。 F
- 顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。 F
- 空间复杂度是根据算法写成的程序在执行时占用存储单元的长度,往往与输入数据的规模有关。 T
- 线性表采用链式存储表示时,所有结点之间的存储单元地址可以连续也可以不连续。 T
- 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储最节省时间。 T
- 链表的每个结点都恰好有一个指针。 F
- n个元素进队的顺序和出队的顺序总是一致的。 T
二、选择题
- 等概率情况下,在表长为n的顺序表中插入一个元素所需移动的元素平均个数为( n/2 ) 在等概率情况下,在长度为n的顺序表中插入一个数据元素需要平均移动n/2个元素,删除一个数据元素需要平均移动(n-1)/2 个元素。具体移动的元素个数主要取决于表的长度n以及插入或删除的位置,位置越接近n,做需要移动的元素就越少。
- 创建一个包括n个结点的单链表的时间复杂度是( O(n) )
- 循环队列的队满条件为 ( (sq.rear+1) % maxsize ==sq.front )。(CQ.rear+1)%maxsize==CQ.front
- 假设以行序为主序存储二维数组A=array[1..20,1..10],设每个数据元素占2个存储单元,基地址LOC[1,1]为2000,则LOC[6,9]的存储位置为( ). A.2138 B.2116 C.2118 D.2136
- 下面算法的空间复杂度为 ▁▁▁▁▁。int foo(int n){ return n * (n + 1) / 2;} O(1)
- 顺序表是线性表的( 顺序存储结构 )。
- 在单链表中,指针域为next,要将q所指结点链接到p所指结点之后,其语句序列应为( q->next=p->next; p->next=q; )
- 下面算法的时间复杂度为 ▁▁▁▁▁。int foo(int n){ return n * (n + 1) / 2;} A.O(1)B.O(n2)C.O(n)D.O(n)
- 利用栈实现十进制整数1234转八进制,以下哪项栈表状态符合实际情况:B
-
- 设循环队列中数组的下标范围是0—n-1,其头尾指针分别为f和r,则其元素的个数为( (r-f+n)%n )
- 设计一个判别表达式中左,右括号是否配对出现的算法,采用( 栈)数据结构最佳
- 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是A.2,3,5,1,6,4 B.2,4,3,1,5,6 C.3,2,4,1,6,5 D.4,3,2,1,5,6
- 在不带头结点的单链表中,某个结点的指针域指向该结点的( 直接后继 )
- 使用双向链表存储数据,优点是可以A.提高检索速度 B.节约存储空间 C.方便插入删除数据 D.能很快回收存储空间 单向链表的缺点是结点中只有一个指向直接后继的指针,检索的时候只能从头开始出发顺序往后查找其他结点。双向链表正是为了克服这个缺点的,所以,使用双向链表存放数据的优点是提高检索速度。
- 在一个单链表中,已知b结点,若在b后插入a结点,则须执行( c->next=b;a->next=c; ).A.b->next=a; a->next=b;B.a->next=b; b->next=a->nextC.a->next=b->next; b->next=a;D.b->next=a->next; a->next=b;
- 假设以行序为主序存储二维数组A=array[1..80,1..70],设每个数据元素占2个存储单元,基地址LOC[1,1]为7800,则LOC[28,63]的存储位置为( 11704).
- 在n个数据元素的顺序表中,算法时间复杂度为O(1)的操作是(123 )(1) 访问第i个结点(1≤i≤n)(2) 求第i个结点的直接前驱(2≤i≤n)(3) 求第i个结点的直接后继(1≤i≤n-1)(4) 在第i个结点后插入一个新结点(1≤i≤n)(5) 删除第i个结点(1≤i≤n)(6) 排序
- 循环队列的引入是为了( 克服假溢出时大量移动数据元素)。
- 表达式(a+a*b)a+cb/a的后缀表达式是( a a b * + a * c b * a / + )A.a a b * + a c b * a / + * B.
a a * b + a * c b * a / + C.a a b * + a * c b * a / + D.a a b * a * c b * + a / +
- 对于顺序表,以下说法错误的是( )A.顺序表的所有存储结点按相应数据元素间的逻辑关系决定的次序依次排列 B.顺序表的特点是:逻辑结构中相邻的结点在存储结构中仍相邻 C.顺序表是用一维数组实现的线性表,数组的下标可以看成是元素的绝对地址 D.顺序表的特点是:逻辑上相邻的元素,存储在物理位置也相邻的单元中