2012/11/24

資料結構 稀疏矩陣

稀疏矩陣





#include <stdio.h>
#include <stdlib.h>

void main()
{
    int Data[9][7]={
    0,0,0,0,0,0,0,
    0,3,0,0,7,0,0,
    0,0,0,0,0,9,0,
    1,4,0,0,0,0,0,
    0,0,7,0,10,0,0,
    0,0,0,0,0,5,0,
    0,0,0,0,0,0,0,
    0,0,8,0,6,0,0,
    0,0,0,0,0,0,0,};

    int CompressData [11][3];
    int Index = 0;

    printf("矩陣壓縮前的資料\n");
    for(int i=0;i<9;i++){
        for(int j=0;j<7;j++){
            printf("%4d",Data[i][j]);
        }
        printf("\n");
    }

    for(int i=0;i<9;i++){
        for(int j=0;j<7;j++){
            if(Data[i][j]!=0){
                Index++;
                CompressData[Index][0] = i ;
                CompressData[Index][1] = j ;
                CompressData[Index][2] = Data[i][j] ;
            }
        }
    }

    CompressData[0][0] = 9 ;
    CompressData[0][1] = 7 ;
    CompressData[0][2] = Index ;

    printf("\n壓縮過後的資料\n");
    for(int i=0;i<=Index;i++){
        for(int j=0;j<3;j++){
            printf("%4d",CompressData[i][j]);
        }
        printf("\n");
    }

    system("pause");
}



參考資料:
資料結構 黃國瑜/葉乃菁