您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法系列---数组

2008-04-02 12:43 260 查看
数组的实现及操作:


#define MAXSIZE 100


#define OK 1


#define ERROR 0


#define OVERFLOW -2




typedef int ElemType;




typedef struct ...{


int i,j;


ElemType e;


}Triple;






typedef struct ...{


Triple data[MAXSIZE];


int mu,nu,tu;


}TSMatrix;




//利用二维数据创建一个三元组顺序表


int CreatMatrix(int array[][3],TSMatrix *m)




...{


int q=0;


m->mu=3;


m->nu=3;


for(int row=0;row<3;row++)




...{


for(int col=0;col<3;col++)




...{


if(array[row][col])




...{


m->data[q].e=array[row][col];


m->data[q].i=row;


m->data[q].j=col;


q++;


}


}


}


m->tu=q;


return OK;


}




/**//*


int CreatMatrix(int *array,int rownum,int colnum,TSMatrix *m)


{


int q=0;


m->mu=rownum;


m->nu=colnum;


for(int row=0;row<rownum;row++)


{


for(int col=0;col<colnum;col++)


{


if(*array!=0)


{


m->data[q].e=*array;


m->data[q].i=row;


m->data[q].j=col;


q++;


}


array++;


}


}


m->tu=q;


return OK;


}


*/


//转置


int TransposeMatrix(TSMatrix m,TSMatrix &t)




...{


int q=0;


t.mu=m.nu;


t.nu=m.mu;


t.tu=m.tu;


if(t.tu)




...{


for(int col=0;col<m.nu;col++)


for(q=0;q<m.tu;q++)


if(m.data[q].j==col)




...{


t.data[q].i=m.data[q].j;


t.data[q].j=m.data[q].i;


t.data[q].e=m.data[q].e;


++q;


}


}


return OK;


}


//输出元素


void PrintMatrix(TSMatrix m)




...{


for(int c=0;c<m.tu;c++)




...{


printf("%d,%d is :%d ",m.data[c].i+1,m.data[c].j+1,m.data[c].e);


}


}




int main(int agrc,char *argv[])




...{




int array[3][3]=...{...{0,0,1},...{0,2,3},...{4,0,0}};


TSMatrix m,n;




CreatMatrix(array,&m);


// CreatMatrix(*array,3,3,&m);


// CreatMatrix(array[0],3,3,&m);




TransposeMatrix(m,n);




PrintMatrix(m);


printf("after transport .... ");


PrintMatrix(n);


printf(" ");


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: