数据结构第五章 数组和广义表作业讲评.ppt
文本预览下载声明
第五章 数组和广义表;519;void Get_Saddle5(int A[m][n])
{ for(i=0;im;i++)
{ min[i]=A[i][0];
for(j=0;jn;j++) //求一行中的最小值
{ if(min[i]A[i][j]) min[i]=A[i][j]; }
}
for(i=0;im;i++)
{ column=0;
for(j=0;jn;j++)
{ if(min[i]==A[i][j]) column=j;
for(k=0;km;k++) //判断这个(些)最大值是否鞍点
if(A[k][column]min[i]) break;
if(k==m)
{ saddlecount++;
printf(Found a saddle A[%d][%d]=%d,i,j,A[i][j]);
}
}
}
if(saddlecount==0) printf(no saddle!);
};void Get_Saddle(int A[m][n])
{ for(i=0;im;i++) //求出行中最小值并标记
{ min=A[i][0];
for(j=1;jn;j++)
if (A[i][j]min)
min=A[i][j];
for (j=0;jn;j++)
if(A[i][j]==min)
mina[i][j]=1;
}
for(j=0;jn;j++) //求出列中最大值并标记
{ max=A[0][j];
for(i=1;im;i++)
if (A[i][j]max)
max=A[i][j];
for (i=0;im;i++)
if(A[i][j]==max)
maxa[i][j]=1;
} ;519 方法2(2);5.21 三元组表表示的矩阵相加(2);void TSMatrix_Add(TSMatrix A,TSMatrix B,TSMatrix C)
{ C.mu=A.mu;C.nu=A.nu;C.tu=0;pa=1;pb=1;pc=1;
for(x=1;x=A.mu;x++) //对矩阵的每一行进行加法
{ while(A.data[pa].ix) pa++; while(B.data[pb].ix) pb++;
while(A.data[pa].i==xB.data[pb].i==x)//行列值都相等
{ if(A.data[pa].j==B.data[pb].j)
{ ce=A.data[pa].e+B.data[pb].e;
if(ce) //和不为0
{C.data[pc].i=x; C.data[pc].j=A.data[pa].j;
C.data[pc].e=ce; pa++;pb++;pc++;}//if
}//if
else if(A.data[pa].jB.data[pb].j) ; { C.data[pc].i=x;C.data[pc].j=B.data[pb].j;
C.data[pc].e=B.data[pb].e;pb++;pc++;}
else
{ C.data[pc].i=x;C.data[pc].j=A.data[pa].j; C.data[pc].e=A.data[pa].e;pa++;pc++;} }
while(A.data[pa].i==x) //插入A中剩余的元素(第x行)
{ C.data[pc].i=x;C.data[pc].j=A.data[pa].j;
C.data[pc].e=A.data[pa].e;pa++;pc++; }
while(B.data[pb].i==x) //插入B中剩余的元素(第x行)
{ C.data[pc].i=x;C.data[pc].j=B.data[pb].j;
C.data[pc].e=B.data[pb].e;pb++;pc++; }
}//for
C.tu=pc-1;
}//TSMatrix_Add ;5.21 方法2(1);5.21-方法2
显示全部