데이터 구조 - 희소 행렬 연산 기 (C 언어)
/***************** ****************/
#include
#include
#define OK 1
#define TRUE 1
#define ERROR 0
#define FALSE 0
#define MAX_SIZE 100
typedef struct{ //
int x;
int y;
int e;
}Triad;
typedef struct {
int mrow,mcol,ms;
Triad data[MAX_SIZE];
}Rtriad;
void Input(Rtriad &S){ //
printf(" , (row col):");
scanf("%d%d",&S.mrow,&S.mcol);
printf(" , ,'-1 -1 -1' :
");
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
S.ms=0;
while(!(x==-1&&y==-1&&z==-1)){ // S.ms+1, 0 S.ms
S.data[S.ms].x=x;
S.data[S.ms].y=y;
S.data[S.ms].e=z;
S.ms++;
scanf("%d%d%d",&x,&y,&z);
}
S.ms--;
}
void Add(Rtriad S1,Rtriad S2,Rtriad &S3){ //
if(S1.mcol!=S2.mcol||S1.mrow!=S2.mrow){
printf("ERROR!!!
");
return ;
}
S3.mcol=S1.mcol ;
S3.mrow=S1.mrow ;
S3.ms=0;
int row,col,s,x,y,z;
for(row=1;row<=S3.mrow;row++){
for(col=1;col<=S3.mcol;col++){
z=0;
for(s=0;s<=S1.ms;s++){
if(S1.data[s].x==row&&S1.data[s].y==col){
S3.data[S3.ms].x=row;
S3.data[S3.ms].y=col;
S3.data[S3.ms].e=S1.data[s].e;
z++;
}
}
for(s=0;s<=S2.ms;s++){
if(S2.data[s].x==row&&S2.data[s].y==col){
S3.data[S3.ms].x=row;
S3.data[S3.ms].y=col;
if(z==0)
S3.data[S3.ms].e=S2.data[s].e;
else
S3.data[S3.ms].e+=S2.data[s].e;
z++;
}
}
if(z!=0)
S3.ms++;
}
}
int m=0;
for(int t=0;t<=S3.ms;t++){
if(S3.data[t].e==0){ //
for(int i=t+1;i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.