데이터 구조 실험 보고서 - 매트릭스 3 원 그룹, 전환 과 빠 른 전환
5151 단어 데이터 구조 학습
편제 부서: 국토 자원 대학 편제 인: 심사 인: 편제 날짜: 2017 년 3 월 8 일 프로젝트 번호 No. C001 프로젝트 명칭 데이터 구조 훈련 대상 GIS 2015 급 7, 8 학 시 4 과정 명칭 데이터 구조 실험 교재 데이터 구조 (C 언어 판)
목적 Objective 1. 알고리즘 으로 프로 그래 밍 하 는 것 을 배 웁 니 다.희소 행렬 의 빠 른 전환 을 실현 하 는 첫 번 째 문제: 프로그램 코드 는 다음 과 같다.
#include"stdio.h"
#define OK 1
#define ERROR 0
#define TRUE 1
#define FLASE 0
typedef int Status;
typedef int ElemType;
#define MAX_SIZE 100 /* */
#define MAX_RC 20 /* */
typedef struct
{
int i,j; /* , */
ElemType e; /* */
}Triple; /* c5-2.h */
typedef struct
{
Triple data[MAX_SIZE+1]; /* ,data[0] */
int rpos[MAX_RC+1]; /* , c5-2.h */
int mu,nu,tu; /* 、 */
}TSMatrix;
Status CreateSMatrix(TSMatrix *M)
{ /* M */
int i,m,n;
ElemType e;
Status k;
printf(" , , :");
scanf_s("%d,%d,%d",&(*M).mu,&(*M).nu,&(*M).tu);
if((*M).tu>MAX_SIZE)
return ERROR;
(*M).data[0].i=0; /* */
for(i=1;i<=(*M).tu;i++)
{
do
{
printf(" %d (1~%d), (1~%d), :",i,(*M).mu,(*M).nu);
scanf("%d,%d,%d",&m,&n,&e);
k=0;
if(m<1||m>(*M).mu||n<1||n>(*M).nu) /* */
k=1;
if(mi= =i&&p->j==j) /* p , p */
{
printf("%3d",p->e); /* p */
p++; /* p */
k++; /* +1 */
}
else /* p */
printf("%3d",0); /* */
printf("
");
}
}
void TransposeSMatrix(TSMatrix M,TSMatrix *T)
{ /* M T。 .1 */
int p,q,col;
(*T).mu=M.nu;
(*T).nu=M.mu;
(*T).tu=M.tu;
if((*T).tu)
{
q=1;
for(col=1;col<=M.nu;++col)
for(p=1;p<=M.tu;++p)
if(M.data[p].j==col)
{
(*T).data[q].i=M.data[p].j;
(*T).data[q].j=M.data[p].i;
(*T).data[q].e=M.data[p].e;
++q;
}
}
}
Status FastTransposeSMatrix(TSMatrix M,TSMatrix &T)
{
T.mu=M.nu;
T.nu=M.mu;
T.tu=M.tu;
if(T.tu)
{
int col;
int num[100], cpot[100];
for(col=1;col<=M.nu;++col)
num[col]=0; //num
for(int t=1;t<=M.tu;++t)
++num[M.data[t].j]; // M
cpot[1]=1;
for(col=2;col<=M.nu;++col)
cpot[col]=cpot[col-1]+num[col-1]; // cpot
int q;
for(int p=1;p<=M.tu;++p)
{
col=M.data[p].j;
q=cpot[col];
T.data[q].i=M.data[p].j;
T.data[q].j=M.data[p].i;
T.data[q].e=M.data[p].e;
++cpot[col];
}//for
}//if
return OK;
}//FastTransposeSMatrix
void main()
{
TSMatrix A,B,C,T;
printf(" A: ");
CreateSMatrix(&A);
PrintSMatrix(A);
TransposeSMatrix(A,&C);
printf(" C(A ):
");
PrintSMatrix1(C);
FastTransposeSMatrix(A,T);
printf(" T(A ):
");
PrintSMatrix1(T);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
FHQ_Treap 트 리 (회전 없 는 Treap 트 리) 템 플 릿 방향이 나 무 는 회전 조작 이 필요 없 는 Treap 나무 로 FHQ (범 호 강) 사내 가 발명 하여 신 급 데이터 구조 라 고 할 수 있 습 니 다!그 는 짧 고 간결 하 며 배우 기 쉬 우 며, 그 사상의 우아 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.