• 2022-06-15
    简述以下算法的功能(栈st和队列qu的元素类型均为ElemType)。 bool fun(SqQueue *&qu,int i) { ElemType e; int j=1; int n=(qu->rear-qu->front+MaxSize)%MaxSize; if (j[1 || j]n) return false; for (j=1;j<=n;j++) { deQueue(qu,e); if (j!=i) enQueue(qu,e); } return true; }
  • 答:算法的执行步骤如下: (1)求出队列qu中的元素个数n。参数i错误时返回假。 (2)qu出队共计n次,除了第i个出队的元素外,其他出队的元素立即进队。 (3)返回真。 所以本算法的功能是,删除qu中从队头开始的第i个元素。例如,qu中从队头到队尾的元素是a、b、c、d、e,执行算法fun(qu,2)后,qu中从队头到队尾的元素改变为a、c、d、e。

    内容

    • 0

      【填空题】补充完成以下函数功能,返回数组a中的第n大元素的值 int fun(int a[], int s, int n) { const int MININT = -10000; int i, j, max, index; for (i = 0; i < n; ++i) { max = MININT; for (j = i; j < s; ++j) if (a[j] > __(1)___) { max = a[j]; index = j; } a[index] = a[i]; a[i] = __(2)_____; } return max; }

    • 1

      判断一个队列QU(最多元素为MAXSIZE)为空的条件是( ) A: QU->;rear-QU->;front= = MAXSIZE B: QU->;rear-QU->;front-1= =MAXSIZE C: QU->;front= =QU->;rear D: QU->;front= =QU->;rear+1

    • 2

      在C语言中,如要给一个较大的[img=54x22]17de83d2fb35c85.png[/img]的数组赋值,以下方式性能较好的是:() A: for ( int i = 0; i <; N; i++ ) for ( int j = N - 1; j >;= 0; j-- ) mat[i][j] = val; B: for ( int i = 0; i <; N; i++ ) for ( int j = 0; j <; N; j++ ) mat[j][i] = val; C: for ( int i = N - 1; i >;= 0; i-- ) for ( int j = N - 1; j >;= 0; j-- ) mat[j][i] = val; D: for ( int i = N - 1; i >;= 0; i-- ) for ( int j = N - 1; j >;= 0; j-- ) mat[j][i] = val;

    • 3

      写出以下程序运行结果。 #include<iomanip.h> const int N=3; int main() { int a&#91;N&#93;&#91;N&#93;={{7,-5,3},{2,8,-6},{1,-4,-2}}; int b&#91;N&#93;&#91;N&#93;={{3,6,-9},{2,-8,3},{5,-2,-7}}; int i,j,c&#91;N&#93;&#91;N&#93;; for(j=0;j<N;i++) //计算矩阵C for(j=0;j<N;j++) c[i]&#91;j&#93;=a[i]&#91;j&#93;+b[i]&#91;j&#93;; for(j=0;j<N;i++) //输出矩阵C { for(j=0;j<N;j++) cout<<setw(5)<<c[i]&#91;j&#93;; cout<<endl; } }[/i][/i][/i][/i]

    • 4

      判定一个循环队列 qu (最多元素为 MaxSize )为空的条件是() A: qu->;rear–qu->;front ==MaxSize B: qu->;rear–qu->;front -1==MaxSize C: qu->;rear ==qu->;front D: qu->;rear =qu->;front -1