12、以下算法的功能是在一个非递减的顺序存储线性表中,删除所有值相等的多余元素。时间复杂度为O(n),空间复杂度为O(1)。划线部分应填入的语句是()。 void DelRepeatData(SeqList *L) { i=0; j=1; while(j<=L->last) { if(L->elem[i]==L->elem[j]) ; else { L->elem[i+1]=L->elem[j]; i++; j++; } } L->last=i; }A.i++B.j++C.i--D.j--

12、以下算法的功能是在一个非递减的顺序存储线性表中,删除所有值相等的多余元素。时间复杂度为O(n),空间复杂度为O(1)。划线部分应填入的语句是()。 void DelRepeatData(SeqList *L) { i=0; j=1; while(j<=L->last) { if(L->elem[i]==L->elem[j]) ; else { L->elem[i+1]=L->elem[j]; i++; j++; } } L->last=i; }

A.i++

B.j++

C.i--

D.j--


参考答案和解析
①j ②p->link=q->link;

相关考题:

下面程序段的时间复杂度是()。for(i=0;in;i++)for(j=1;jm;j++)A[i][j]=0; A、O(n)B、O(m+n+1)C、O(m+n)D、O(m*n)

●下面算法是实现对n个整数的序列进行选择排序,其中序列的"长度"n为问题的规模。该算法的时间复杂度为 (23) 。void select_sort(int a[],int n){//将a中整数序列重新排列成从小到大有序的整数序列for(i=0;in-1;++i){j=i;for(k=i+1;kn;++k)if(a[k]a[j])j=k;if(j!=i){w=a[j];a[j]=a[i];a[i]=w;}}//select- sort(23) A.O(n3)B.O(n2)C.O(n)D.O(n4)

请补充main函数,该函数的功能是:输出一个NXN矩阵,要求非周边元素赋值0,周边元素赋值1。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。试题程序:include<stdio .h>define N 10main(){int bb[N] IN];iht i,j,n;clrscr 0;printf (" \nInput n: \n");scanf ("%d", n);for (i=0; i<n; i++ )for (j=0; j<n; j++){if(【 】)bb[i] [j]=l;else【 】;}printf(" \n*** the result *** \n");for (i=0; i<n; i++){printf (" \n\n");for (j=0; j<n; j++)printf ("%4d",bb [i] [j ] );}}

以下程序的输出结果是 ( ) main( ) { int n[3] [3],i,j; for (i=0;i<3;i+ +) for(j=0;i<3;++) n[i][j]=i+j; for(i=0;i<2;i++) for(j=0,j<2;j++) n[i+1][j+1]+=[i][j]; printf("%d\n",n[1][j]); }A.14B.0C.6D.值不确定

下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+3; for (j=0;j<=(2*n);j++) x++; }A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)

有以下程序:includestdio.hmain( ){ char a[5][10]={one,tw0,three,four,five};int i,j;char t: 、for(i=0;i4;i++)for(j=i+1;j5;j++)if(a[i][O]a[j][0]){t=a[i][O];a[i][O]=a[j][O];a[j][O]=t;)puts(a[1]);}程序运行后的输出结果是( )。A.fwoB.fixC.twoD.owo

使用VC6打开考生文件夹下的工程test13_3。此工程包含一个test13_.cpp,其中定义了类Vector,但类的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)完成构造函数的定义,把数据成员size初始化为参数s的值,数据成员buffer指向动态申请的int型size大小的空间。请在注释“//**1**”之后添加适当的语句。(2)完成拷贝构造函数的定义,注意解决多次删除的问题。请在注释“//**2**”之后添加适当的语句。(3)完成成员函数elem的定义,该函数返回buffer的第ndx个元素的值,注意如果ndx超界,请输出“error in index”。请在注释“//**3**”之后添加适当的语句。(4)完成析构函数的定义,要求先将字符d打印在屏幕上,再释放buffer指向的空间。请在注释“//**4**”之后添加适当的语句。输出结果如下:1234567891012345678910dd注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。源程序文件test13_3清单如下:include<iostream.h>include<stdlib.h>class Vector{public:Vector(int s=100);Vector(Vector v);int elem(int ndx);void display();void set();~Vector();protected:int size;int *buffer;};Vector::Vector(int s){// ** 1 **}Vector::Vector(Vector v){// ** 2 **for(int i=0; i<size; i++){*(buffer+i)=*(v.buffer+i);}}int Vector::elem(int ndx){// ** 3 **{cout<<"error in index"<<endl;exit(1);}return buffer[ndx];}void Vector::display(){for(int j=0;j<size;j++)cout<<elem(i)<<endl;}void Vector::set(){for(int j=0;i<size;j++)elem(j)=j+1;}Vector::~Vector(){// ** 4 **}void main(){Vector a(10);Vector b(a);a. set();b. set();a. display();b. display();}

阅读下列函数说明和C代码,填入(n)处。[说明]以下C语言程序实现了生成从里到外是连续的自然数排列的回旋矩阵,矩阵形式如下:7 6 5 168 1 4 159 2 3 1410 11 12 13程序的变量说明如下:x1:矩阵上边界;x2:矩阵下边界;y1:矩阵左边界;y2:矩阵右边界;s:数组元素升降标记,s等于1为升,s等于-1为降;a[]:存放矩阵元素的数组。仔细阅读C语言程序源码,将(n)处的语句补充完整。(注:每处仅一个语句)[C程序]include<stdio.h>void main ( ){const int N=20;int i=0,j=0,a[N][N],n;int m,x1,x2,y1,y2,s;while (1){Printf ("\ninput matrix row N( N>=2): ");scanf ("%d",n);printf ("\n");if (n>=2)break;}m=n*n;x1=0; y1=0; x2=n; y2=n;if(n%2==0){j=n-1; y2=n-1; s=1;}else{i=n-1; y1=1; s=-1; }while (1){if (s==1){for (i; i<x2; i++) a[i][j]=m--;i--;j--;(1)for (j;j>=y1;j--) a[i][j]=m--;j++;i--;y1++;(2)}else{for (i;i>=x1;i--)a[i][j]=m--;i++;j++;(3)for (j;j<y2;j++)(4)(5)i++;(6)S=i;}if (m<1) break;}for (i=O;i<n; i++){for (j=O;j<n;j++)printf ("%6d",a[i][j]);printf ("\n");}printf ("\n");}

下面程序段的时间复杂度为 ( ) for(i=0;i<m;i++) for(j=0;j<n;j++) A[i][j]=i*j;A.O(m2)B.O(n2)C.O(m*n)D.O(m+n)

下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+1; for (j=0;j<=(2*n);j++) X++; }A.O(log2n)B.O(n)C.0(nlog2n)D.O(n2)

下面算法是实现对n个整数的序列进行选择排序,其中序列的“长度”n为问题的规模。该算法的时间复杂度为(11)。 void select_sort(int a[],int n){ //将a中整数序列重新排列成从小到大有序的整数序列 for(i=0;i<n-1;++i){ j=i; for(k=i+1;k<n;++k)if(a[k]<a[j])j=k; if(j!=i){w=a[j];a[j];a[i];a[i]=w} )//select_sortA.O(n2)B.O(n3)C.O(n4)D.O(n)

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:54 13 23 1 12 2 12 1 1 11 1 1 1 1共有7种划分。这种划分的程序如下所示。【程序】include <stdio.h>int n[1000],m,k;void output sum(){int j;for(j=0;n[j]!=0;j++)printf("%d\t",n[j]);printf("\n");}void sum(int i)if(m-n[i]<n[i]){ m=m-n[i];(1)i++;n[i+1]=0;}else{(2)m-=n[i];i++;}if(m!=n[i])sum(i);elseoutput_sum();if(n[i]>1){n[i]--;(3)}else{while((n[i]==1)(i>O)){i--;(4)}if(i!=0){(5)sum(i);}}}void main(){int i;scanf("%d",n[0]);m=k=n[0];for(i=1;i<=k;i++)n[i]=0;while(n[0]!=1){n[0]--;i=0;sum(0);m=k;}}

下面程序段的时间复杂度是(9)。for(i=0,k=0;<n;1++){ k+=A[i][j]; for(j=1;j<m;j++) A[i][j]=1}A.O(n)B.O(m+n+1)C.O(m+n)D.O(m*n)

下列程序的时间复杂度为( )。 for (i=l;i<2n;i++) { y++; for(j=0;j<a3n;j++) x++; }A.0(n-1)B.O(2n)C.0(n2)D.O(log2n)

下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+1; for (j=0; j<=(2*n); j++) x++; }A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)

下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+1; for (j=0;3<-(2*n);j++) x++; }A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)

下面的程序段的时间复杂度为【】s=0;for(i=0;in;i++)for(j=0;jm;j++)s=s+a[i][i];A.O(1)B.O(m+n)C.O(log2mn)D.O(m*n)

下列程序段的时间复杂度为()。for(i=0;i<m;i++)for(j=0;j<t;j++)e[i][j]=0;for(i=0;i<m;i++)for(j=0;j<t;j++)for(k=0;k<n;k++)c[i][j]_c[i][j]+a[i][k]×b[k][j];A.O(m×n×t)B.O(m+n+t)C.O(m×t+n)D.O(m+n×t)

设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1;i=n;i++) for(j=i;j=n;j++) x++;A、O(1)B、O(2n2)C、O(n)D、O(3n3)

设顺序表共有n个元素,用数组elem存储,实现在第i个元素之前插入一个元素e的操作,其主要语句为()。A、FOR j=n DOWNTO i DO elem[j]=elem[j+1]; elem[i]=e;B、FOR j=i TO n DO elem[j]=elem[j+1]; elem[i]=e;C、FOR j=i TO n DO elem[j+1]=elem[j]; elem[i]=e;D、FOR j=n DOWNTO i DO elem[j+1]=elem[j]; elem[i]=e;

设顺序存储的线性表存储结构定义为: struct sequnce {ELEMTP elem[MAXSIZE]; int len; /*线性表长度域*/ } 将下列简单插入算法补充完整。 void insert(struct sequnce *p,int i,ELEMTP x) {v=*p; if(i1)||(iv.len+1)printf(“Overflow“); else { for(j=v.len;();j- -)(); v.elem[i]= () ;v.len=(); } }

假设线性表采用顺序存储结构,表中元素值为整型。阅读算法f2,设顺序表L=(3,7,3,2,1,1,8,7,3),写出执行算法f2后的线性表L的数据元素,并描述该算法的功能。voidf2(SeqList*L){inti,j,k;k=0;for(i=0;ilength;i++){for(j=0;jdata[i]!=L-data[j];j++);if(j==k){if(k!=i)L-data[k]=L-data[i];k++;}}L-length=k;}

下面程序段的时间复杂度是() for(i=0;i<n;i++)  for(j=0;j<n;j++)  A[i][j]=0;

填空题设顺序存储的线性表存储结构定义为: struct sequnce {ELEMTP elem[MAXSIZE]; int len; /*线性表长度域*/ } 将下列简单插入算法补充完整。 void insert(struct sequnce *p,int i,ELEMTP x) {v=*p; if(iv.len+1)printf(“Overflow“); else { for(j=v.len;();j- -)(); v.elem[i]= () ;v.len=(); } }

填空题下面程序段的时间复杂度是() for(i=0;i<n;i++)  for(j=0;j<n;j++)  A[i][j]=0;

单选题设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1;i=n;i++) for(j=i;j=n;j++) x++;AO(1)BO(2n2)CO(n)DO(3n3)

单选题设顺序表共有n个元素,用数组elem存储,实现在第i个元素之前插入一个元素e的操作,其主要语句为()。AFOR j=n DOWNTO i DO elem[j]=elem[j+1]; elem[i]=e;BFOR j=i TO n DO elem[j]=elem[j+1]; elem[i]=e;CFOR j=i TO n DO elem[j+1]=elem[j]; elem[i]=e;DFOR j=n DOWNTO i DO elem[j+1]=elem[j]; elem[i]=e;

问答题已知gi,j=102,gi+1,J=112,gi+1,j+1=126,k-i =Δ/4,l-Δj=Δ/4, 为采样间隔,用双线性插值计算gk,l。