4. 㷨
1һ㷨RepChar(s,x,y)˳sַx滻ַyҪռ临ӶΪO(1)
⣺Ҫ㷨ռ临ӶΪO(1)ֻܶԴsֱ滻ͷʼsһҵַx㽫滻yӦ㷨£
void RepStr(SqString &s,char x,char y) { }
int i;
for (i=0;i if (s.data[i]==x) s.data[i]=y; 2һ㷨жsԪǷΪеġ ⣺pqָs㣬pָʼ㣬q->datap->dataʱpqͬһ㣻0Ԫǵʱ1Ӧ㷨£ int increase(LinkString *s) { } LinkString *p=s->next,*q; if (p!=NULL) { } return 1; while (p->next!=NULL) { } q=p->next; p=q; //ʱ0 return 0; //qָ*pĺ if (q->data>=p->data) else 3ʽṹ洢һsһ㷨sֵӴ ⣺贮ôͷĵ洢smaxƽ̨ȣɨ贮sһƽ̨ijnnmaxmaxΪnӦ㷨£ int maxlength(LinkString *s) { int n,max=0; LinkString *p=s->next,*q; while (p!=NULL) { n=1; q=p;p=p->next; while (p!=NULL && p->data==q->data) { } if (n>max) max=n; n++; p=p->next; ݽṹ̳ } } return max; ϻʵ4 ǿմst˳洢ṹ洢һ㷨Ӵݽвԡ ⣺Index㷨˼·˳stӴstrӦij£ #include SqString s,t,str; Assign(s,\Assign(t,\printf(\SqString str; int midx=0,mlen=0,tlen,i=0,j,k; while (i for (i=0;i str.length=mlen; return str; //Ӵ //ӴƵstr str.data[i]=s.data[midx+i]; j=0; { } i++; //ɨsеiַַ֮ while (j if (s.data[i]==t.data[j]) //һӴ,s±Ϊi,Ϊtlen { } else j++; tlen=1; for (k=1;i+k //ɨtеj+tlenַַ֮ && s.data[i+k]==t.data[j+k];k++) //ϴ߸midxmlen tlen++; midx=i; mlen=tlen; //(midx,mlen)Ӵ //iɨ贮s //jɨ贮t //˳Ļ㺯 SqString maxcomstr(SqString s,SqString t) if (tlen>mlen) } printf(\ printf(\stӴstr\\n\str=maxcomstr(s,t); printf(\ ϰ5 1. ѡ 16070еĶάa[1..60,1..70]±1ʼΪ˳洢ַΪ10000ÿԪռ2洢Ԫô32е58еԪa[32,58]Ĵ洢ַΪ A.16902 B.16904 C.14454 D.϶ A 2ѹ洢ĿҪΪˣ A.ü B.ԾԪصĴȡü C.ȥеĶԪ D.ٲҪĴ洢ռ D 3һnnĶԳƾѹ洢лΪڴ棬ѹ洢ǣ A. n2 B. n2/2 C. n(n+1)/2 D. (n+1)2/2 C 4aһԳƾΪ˽ʡ洢Dzְһάb[1..n(n-1)/2]У±1ʼDzһԪai,jijһάb±kֵǣ A.i(i-1)/2+j-1 B.i(i-1)/2+j C.i(i+1)/2+j-1 D.i(i+1)/2+j B 5һάA±ķΧ08±ķΧ15ÿԪڵ4ֽڴ洢洢ֽڱַ洢ԪA[0,1]ĵһֽڵĵַ0洢AһԪصĵһֽڵĵַǣ д洢A[3,5]A[5,3]ĵһֽڵĵֱַǣ ͣ д洢A[7,1]A[2,4]ĵһֽڵĵֱַǣ ͣ A.28 B.44 C.76 D.92 E.108 F.116 G.132 H.176 I.184 J.188 𣺢H C E A F 6һάA±ķΧ16±ķΧ07ÿԪڵ6ֽڴ洢洢ֽڱַôǣ ֽڡ洢ԪA[1,0]ĵһֽڵĵַ0洢AһԪصĵһ ݽṹ̳ ֽڵĵַǣ д洢A[2,4]ĵһֽڵĵַǣ д洢A[5,7]ĵһֽڵĵַǣ A.12 B.66 C.72 D.96 E.114 F.120 G.156 H.234 I.276 J.282 K.283 L.288 𣺢L J C I 7ϡһѹ洢֣ A.άά B.Ԫɢ C.Ԫʮ D.ɢкʮ C 2. 1άA[c1..d1,c2..d2,c3..d3]c1d1c2d2c3d3У Ԫء (d1-c1+1)(d2-c2+1)(d3-c3+1) 2֪άA[m][n]Ϊʽ洢ÿԪռk洢ԪҵһԪصĴ洢ַLOC(A[0][0])A[i][j]ĵַǣ LOC(A[0][0])+(ni+j)k 3άA[10][20]Ϊʽ洢ÿԪռһ洢ԪA[0][0]Ĵ洢ַ200A[6][12]ĵַǣ 326 4άA[10..20][5..10]Ϊʽ洢ÿԪռ4洢ԪA[10][5]Ĵ洢ַ1000A[18][9]ĵַǣ 1208 5һ10ԳƾAѹ洢ʽΪ洢Dz֣A[0][0]B[1]УA[8][5]Bеĵַǣ 42 6nǾA[1..n][1..n]ѹһάS[1..n(n+1)/2]УΪ洢A[i][j]ӦSеĴ洢λǣ i(i-1)/2+j 7ϡԪʾУÿӦϡһԪأֱʾԪصģ ±ꡢ±Ԫֵ 3. 㷨 1ٶA[0..n-1]nԪжԪأһ㷨AеķԪƵAǰˡ ⣺ǰΪԪA[i]ӺǰҷԪA[j]A[i]A[j]нӦ㷨£ void move(ElemType A[],int n) { int i=0,j=n-1;