9. 关系数据库的范式
10. 数据库操作中的事务
事务的4个特性:
11. 数字矩阵的生成:
对应的代码如下:
#include<iostream>
#include<algorithm>
#include<iomanip>
#defineprint_arr2d(arr,N){for(inti=0;i<N;i++){\
for(intj=0;j<N;j++)\
cout<<setw(3)<<arr[i][j];\
cout<<endl;\
}}
usingnamespacestd;
/*
1291025
4381124
5671223
1615141322
171819
*/
voidmat_1(){
constintN=5;
intarr[N][N];
intm=1;
for(inti=0;i<N;i++){
if(i&0x1){
for(intj=0;j<=i;j++)
arr[j][i]=m++;
for(intj=i-1;j>=0;j--)
arr[i][j]=m++;
}
else{
for(intj=0;j<=i;j++)
arr[i][j]=m++;
for(intj=i-1;j>=0;j--)
arr[j][i]=m++;
}
}
print_arr2d(arr,N);
}
/*
126715
3581416
49131722
1012182123
1119202425
*/
voidmat_2(){
constintN=5;
inta[N][N];
intm=1;
intK=0;
for(inti=0;i<N;i++,K++){
for(intj=0;j<=i;j++)
if(K%2==0)
a[K-j][j]=m++;
else
a[j][K-j]=m++;
}
for(inti=1;i<N;i++,K++){
for(intj=i;j<N;j++)
if(K%2==0)
a[K-j][j]=m++;
else
a[j][K-j]=m++;
}
print_arr2d(a,N);
}
/*
12345
161718196
152425207
142322218
131211109
*/
voidmat_3(){
constintN=6;
inta[N][N]={0};
intm=1;
intK=N/2;
if(N%2!=0)
a[K][K]=N*N;
for(inti=0;i<K;i++){
for(intj=i;j<=N-1-i;j++)
a[i][j]=m++;
print_arr2d(a,N);
cout<<"================="<<endl;
for(intj=i+1;j<=N-1-i;j++)
a[j][N-1-i]=m++;
print_arr2d(a,N);
cout<<"================="<<endl;
for(intj=N-2-i;j>=i;j--)
a[N-1-i][j]=m++;
print_arr2d(a,N);
cout<<"================="<<endl;
for(intj=N-2-i;j>=i+1;j--)
a[j][i]=m++;
print_arr2d(a,N);
cout<<"================="<<endl;
}
print_arr2d(a,N);
}
/*
1312111025
1432924
1541823
1656722
171819
*/
voidmat_4(){
constintN=6;
inta[N][N]={0};
intm=N*N;
intK=N/2;
if(N%2!=0)
a[K][K]=1;
for(inti=0;i<K;i++){
for(intj=i;j<=N-1-i;j++)
a[j][N-1-i]=m--;
for(intj=N-2-i;j>=i;j--)
a[N-1-i][j]=m--;
for(intj=N-2-i;j>=i;j--)
a[j][i]=m--;
for(intj=i+1;j<=N-2-i;j++)
a[i][j]=m--;
}
print_arr2d(a,N);
}
intmain(){
mat_4();
}
12. 大数乘法问题:
#include<string>
#include<iostream>
usingnamespacestd;
stringbig_multi(conststring&x,
conststring&y){
intszx=x.size();
intszy=y.size();
int*C=newint[szx+szy+1]();
for(inti=szx-1,k=0;i>=0;i--,k++){
intcarry=0;
intm=k;
for(intj=szy-1;j>=0;j--,m++){
intval=(x[i]-'0')*(y[j]-'0')+carry+C[m];
C[m]=val%10;
carry=val/10;
}
if(carry!=0)
C[m]=carry;
}
stringz;
inti=szx+szy;
while(C[i]==0)
i--;
for(;i>=0;i--)
z+=(char)(C[i]+'0');
deleteC;
returnz;
}
intmain(){
inta=78,b=42;
stringx="78",y="42";
stringz=big_multi(x,y);
cout<<z<<""<<a*b<<endl;
}
13. 递归的方法将两个有序链表进行合并