【简答题】简述以下算法的功能(栈和队列的元素类型均为int)。 void algo3(Queue &Q){ Stack S; int d; InitStack(S); while(!QueueEmpty(Q)) { DeQueue(Q, d); Push(S, d); } while(!StackEmpty(S)) { Pop(S, d); EnQueue(Q, d); } }
【简答题】简述以下算法的功能(栈和队列的元素类型均为int)。 void algo3(Queue &Q){ Stack S; int d; InitStack(S); while(!QueueEmpty(Q)) { DeQueue(Q, d); Push(S, d); } while(!StackEmpty(S)) { Pop(S, d); EnQueue(Q, d); } }
写出以下程序段的输出结果: voidmain() { SqQueueQ; InitQueue(&Q); charx='e',y='c'; EnQueue(&Q,'h');EnQueue(&Q,'r'); EnQueue(&Q,y);DeQueue(&Q,&x); EnQueue(&Q,x);DeQueue(&Q,&x); EnQueue(&Q,'a'); while(!QueueEmpty(&Q)) { DeQueue(&Q,&y); printf(y); } printf(x); }
写出以下程序段的输出结果: voidmain() { SqQueueQ; InitQueue(&Q); charx='e',y='c'; EnQueue(&Q,'h');EnQueue(&Q,'r'); EnQueue(&Q,y);DeQueue(&Q,&x); EnQueue(&Q,x);DeQueue(&Q,&x); EnQueue(&Q,'a'); while(!QueueEmpty(&Q)) { DeQueue(&Q,&y); printf(y); } printf(x); }
已知队列Q中存放数据(1,-2,3,-4,5,-6),其中1为队头,执行下面程序段之后,队列Q1和Q2中结果为()。 void fun(CirQueue*Q, CirQueue *Q1, CirQueue *Q2) { int e; InitQueue(Q1); InitQueue(Q2); while (!QueueEmpty(Q)) { e=DeQueue(Q); if(e>=0) EnQueue(Q1,e); else EnQueue(Q2,e); } }
已知队列Q中存放数据(1,-2,3,-4,5,-6),其中1为队头,执行下面程序段之后,队列Q1和Q2中结果为()。 void fun(CirQueue*Q, CirQueue *Q1, CirQueue *Q2) { int e; InitQueue(Q1); InitQueue(Q2); while (!QueueEmpty(Q)) { e=DeQueue(Q); if(e>=0) EnQueue(Q1,e); else EnQueue(Q2,e); } }
在下面Test函数中,S是一个栈,Push和Pop分别是入栈和出栈操作,InitStack是初始化栈操作;Q是一个队列,EnQueue和DeQueue分别是入队和出队操作;StackEmpty是判断栈是否为空,QueueEmpty是判断队列是否为空。已知队列Q中从队头到队尾依次有四个元素:4,3,2,1,写出执行Test()之后,队列Q中的元素从队头到队尾依次是什么。(4分)<br/>void A: Queue B: Queue C: itStack D: p E: sh F: ()){ G: (,x); H: (,x);<br/>}<br/>} I: (eue &Q){ J: ;int<br/>x; K: ();<br/>while(!QueueEmpty L: (,x);<br/>}<br/>while(!StackEmpty M: ()){ N: (,x); O: ack P: st
在下面Test函数中,S是一个栈,Push和Pop分别是入栈和出栈操作,InitStack是初始化栈操作;Q是一个队列,EnQueue和DeQueue分别是入队和出队操作;StackEmpty是判断栈是否为空,QueueEmpty是判断队列是否为空。已知队列Q中从队头到队尾依次有四个元素:4,3,2,1,写出执行Test()之后,队列Q中的元素从队头到队尾依次是什么。(4分)<br/>void A: Queue B: Queue C: itStack D: p E: sh F: ()){ G: (,x); H: (,x);<br/>}<br/>} I: (eue &Q){ J: ;int<br/>x; K: ();<br/>while(!QueueEmpty L: (,x);<br/>}<br/>while(!StackEmpty M: ()){ N: (,x); O: ack P: st
1.一个算法是。 A. 程序 B. 要满足五个基本特性 C. 具体问题求解步骤的描述 D. A和C 2. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是。 A. 在第i个结点后插入一个新结点(1≤i≤n) B. 删除第i个结点(1≤i≤n) C. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) D. 将n个结点从小到大排序 3. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是。 A. 5 4 1 3 2 B. 2 3 4 1 5 C. 2 3 1 4 5 D. 1 5 4 3 2 4. 若循环队列的队头指针为front,队尾指针为rear,则队长的计算公式为。 A. rear-front B. front-rear C. rear-front+1 D. 都不正确 5. 下面关于串的的叙述中,是不正确的。 A. 空串是由空格构成的串 B. 串可以顺序存储 C. 模式匹配是串的一种重要运算 D. 串可以链式存储 6. 设有一个10阶的下三角矩阵A(包括对角线),按照从上到下、从左到右的顺序存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则A[5][4]地址与A[0][0]的地址之差为。 A. 10 B. 28 C. 19 D. 55 7. 下面说法不正确的是。 A. 广义表的表尾总是一个广义表 B. 广义表的表头总是一个广义表 C. 广义表难以用顺序存储结构来存储表示 D. 广义表可以是一个多层次的结构 8. 一棵完全二叉树上有1001个结点,其中叶子结点的个数是。 A. 500 B. 505 C. 503 D. 501 9. 设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为。 A. 20 B. 30 C. 40 D. 45 10.设已将元素a1、a2、a3依次入栈,元素a4正等待入栈。那么下列4个序列中不可能出现的出栈序列是。 A. a3、a1、a4、a2 B. a3、a2、a4、a1 C. a3、a4、a2、a1 D. a4、a3、a2、a1 11.下面关于算法的叙述中错误的是。 A. 一个算法应有一个或多个输入 B. 算法最终必须由计算机程序实现 C. 为解决某问题的算法同为该问题编写的程序含义是相同的 D. 算法中的每条指令都必须有明确的含义 12.在一个单链表中,已知q所指向的结点是p所指向结点的前驱结点,若在q和p 之间插入s所指向的结点,则执行。 A. s->next=p->next;p->next=s; B. p->next=s->next;s->next=p; C. q->next=s;s->next=p; D. p->next=s;s->next=q; 13.栈和队列都是。 A. 顺序存储的线性结构 B. 限制存取点的线性结构 C. 链接存储的线性结构 D. 限制存取点的非线性结构 14.经过以下队列运算后,QueueEmpty(qu)的值是。 initQueue(qu);enQueue(qu,a);enQueue(qu,b);deQueue(qu,x);deQueue(qu,x); A. a B. b C. 0 D. 1 15.串是。 A. 一些符号构成的序列 B. 任意有限个字符构成的序列 C. 一些字母构成的序列 D. 一个以上的字符构成的序列 16.将一个A[1..100,1..100]的三对角矩阵,按行优先压缩存储到一维数组B[1‥298]中,A中元素A[66][65]在B数组中的位置K为。 A. 198 B. 197 C. 195 D. 196 17.广义表(a,(b,c),d,e)的表头为。 A. a B. a,(b,c) C. (a,(b,c)) D. (a) 18.具有50个结点的二叉树中,若用二叉链表存储,其指针域部分用来指向结点的左、右孩子,其余个指针域为空。 A. 49 B. 25 C. 24 D. 51 19.设给定权值总数有n 个,其哈夫曼树的结点总数为。 A. 不确定 B. 2n-1 C. 2n+1 D. 2n 20.广义表G=(a,(a,(a)))的长度为。 A. 1 B. 2 C. 3 D. 4
1.一个算法是。 A. 程序 B. 要满足五个基本特性 C. 具体问题求解步骤的描述 D. A和C 2. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是。 A. 在第i个结点后插入一个新结点(1≤i≤n) B. 删除第i个结点(1≤i≤n) C. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) D. 将n个结点从小到大排序 3. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是。 A. 5 4 1 3 2 B. 2 3 4 1 5 C. 2 3 1 4 5 D. 1 5 4 3 2 4. 若循环队列的队头指针为front,队尾指针为rear,则队长的计算公式为。 A. rear-front B. front-rear C. rear-front+1 D. 都不正确 5. 下面关于串的的叙述中,是不正确的。 A. 空串是由空格构成的串 B. 串可以顺序存储 C. 模式匹配是串的一种重要运算 D. 串可以链式存储 6. 设有一个10阶的下三角矩阵A(包括对角线),按照从上到下、从左到右的顺序存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则A[5][4]地址与A[0][0]的地址之差为。 A. 10 B. 28 C. 19 D. 55 7. 下面说法不正确的是。 A. 广义表的表尾总是一个广义表 B. 广义表的表头总是一个广义表 C. 广义表难以用顺序存储结构来存储表示 D. 广义表可以是一个多层次的结构 8. 一棵完全二叉树上有1001个结点,其中叶子结点的个数是。 A. 500 B. 505 C. 503 D. 501 9. 设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为。 A. 20 B. 30 C. 40 D. 45 10.设已将元素a1、a2、a3依次入栈,元素a4正等待入栈。那么下列4个序列中不可能出现的出栈序列是。 A. a3、a1、a4、a2 B. a3、a2、a4、a1 C. a3、a4、a2、a1 D. a4、a3、a2、a1 11.下面关于算法的叙述中错误的是。 A. 一个算法应有一个或多个输入 B. 算法最终必须由计算机程序实现 C. 为解决某问题的算法同为该问题编写的程序含义是相同的 D. 算法中的每条指令都必须有明确的含义 12.在一个单链表中,已知q所指向的结点是p所指向结点的前驱结点,若在q和p 之间插入s所指向的结点,则执行。 A. s->next=p->next;p->next=s; B. p->next=s->next;s->next=p; C. q->next=s;s->next=p; D. p->next=s;s->next=q; 13.栈和队列都是。 A. 顺序存储的线性结构 B. 限制存取点的线性结构 C. 链接存储的线性结构 D. 限制存取点的非线性结构 14.经过以下队列运算后,QueueEmpty(qu)的值是。 initQueue(qu);enQueue(qu,a);enQueue(qu,b);deQueue(qu,x);deQueue(qu,x); A. a B. b C. 0 D. 1 15.串是。 A. 一些符号构成的序列 B. 任意有限个字符构成的序列 C. 一些字母构成的序列 D. 一个以上的字符构成的序列 16.将一个A[1..100,1..100]的三对角矩阵,按行优先压缩存储到一维数组B[1‥298]中,A中元素A[66][65]在B数组中的位置K为。 A. 198 B. 197 C. 195 D. 196 17.广义表(a,(b,c),d,e)的表头为。 A. a B. a,(b,c) C. (a,(b,c)) D. (a) 18.具有50个结点的二叉树中,若用二叉链表存储,其指针域部分用来指向结点的左、右孩子,其余个指针域为空。 A. 49 B. 25 C. 24 D. 51 19.设给定权值总数有n 个,其哈夫曼树的结点总数为。 A. 不确定 B. 2n-1 C. 2n+1 D. 2n 20.广义表G=(a,(a,(a)))的长度为。 A. 1 B. 2 C. 3 D. 4