本文提供考研考研科目在线题库每日一练,一下为具体内容
1、设计一个十进制转换为八进制的算法,采用 数据结构最佳。
A、栈
B、队列
C、顺序结构线性表
D、链式结构线性表
2、用数组保存FIFO 队列:当删除元素时,队首指针向后移动;当有新元素加入时,若数组末端有空位,则将元素直接放置于队尾元素之后, 否则移动元素使队首位于数组头,再加入新元素。则删除操作最好情况时间复杂性为 ,最坏情况时间复杂性为 ;添加操作最好情况时间复杂性为 , 最坏情况时间复杂性为 ,n为队列元素总数。
A、\( O(1) \)
B、\( O(\log\left(n\right)) \)
C、\( O(n) \)
D、\( O(n\log\left(n\right)) \)
3、栈 S 最多能容纳 4 个元素。现有 6 个元素按 A 、B 、C 、D、E 、F 的顺序进栈。问下列哪一个序列是不可能的出栈序列 。
A、D、E、C、B、A、F
B、B、F、E、D、C、A
C、C、B、E、D、A、F
D、A、D、F、E、C、B
4、已知带头结点的链栈top, 则元素x对应的新结点s进栈操作的语句是 。
A、s->next=top->next; top->next=s;
B、top->next=s; s->next=top->next;
C、top =s; s->next=top;
D、s->next=top; top =s;
5、设有顺序数组(最大容量为 maxsize)存储某循环队列 Q,用 front(队首元素的下标)与 count(队列中元素个数)来标记该队列,假设当前 count<maxsize,则以下语句可以完成新元素 e 入队的操作为 。
A、Q->front++; Q->data[Q->front]=e;
B、Q->data[Q->front+Q->count]=e; Q->count++;
C、Q->count=Q->count++%maxsize; Q->data[Q->front+Q->count]=e;
D、Q->data[(Q->front+Q->count)%maxsize]=e; Q->count++;
6、当用一个数组 data[0..n-1] 存放栈中元素时,栈底最好 。
A、设置在 data[0]处
B、设置在 data[n-1]处
C、设置在data[0]或 data[n-1]处
D、设置在 data 数组的任何位置
7、现有队列 Q 与栈 S,初始时 Q 中的元素依次是 1,2,3,4,5,6 ( 1 在队头),S 为空。若仅允下列 3 种操作:① 出队并输出出队元素;② 出队并将出队元素人栈;③ 出栈并输出出栈元素,不能得到的输出序列是 。
A、1,2,5,6,4,3
B、2,3,4,5,6,1
C、3,4,5,6,1,2
D、6,5,4,3,2,1
8、设有一个 12x12 的对称矩阵 M,将其上三角部分的元素 \( {m}_{i,j} \)(\( 1\le i\le j\le 12 \)) 按行优先存入 C 语言的一维数组 N 中,元素 \( {m}_{\mathrm{6, 6}} \) 在 N 中的下标是 。
A、50
B、51
C、55
D、66
9、设栈的初始状态为空,进栈序列为 1、2、3、4、5、6,若出栈序列为 2、4、3、6、5、1,则操作过程中栈元素个数最多时是 。
A、1 个
B、2 个
C、3 个
D、4 个
10、循环队列放在一堆数组A[0...M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空。下列判断队空和队满的条件中,正确的是 。
A、队空:end1 ==end2; 队满:end1==(end2+1)modM
B、队空:end1 ==end2; 队满:end2==(end1+1)mod(M-1)
C、队空:end2 ==(end1+1)modM;队满:end1==(end2+1)modM
D、队空:end1 ==(end2+1)modM;队满:end2==(end1+1)mod(M-1)