三元组表表示法和十字链表表示法及转置函数;
#include<stdio.h>
#include<stdlib.h>
#define maxn 100
typedef struct //三元组表表示法;
{
int row,col;
int e;
} Triple;
typedef struct
{
Triple data[maxn+1];
int m,n,len;
} TSMatrix;
void TransMatrix(int (*a)[10],int (*b)[10],int m,int n) //最基本的转置;
{
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
b[j][i]=a[i][j];
}
}
}
void TransposeTSMatrix(TSMatrix A,TSMatrix *B) //列徐递增转置算法;
{
int i,j,k;
B->m=A.n;
B->n=A.m;
B->len=A.len;
if(B->len>0)
{
j=1;
for(k=1; k<=A.n; k++)
{
for(i=1; i<=A.len; i++)
{
if(A.data[i].col==k)
{
B->data[j].row=A.data[i].c