1. 程式人生 > >資料結構例程——對稱矩陣的壓縮儲存及基本運算

資料結構例程——對稱矩陣的壓縮儲存及基本運算

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

                       

本文針對資料結構基礎系列網路課程(5):陣列與廣義表中第2課時特殊矩陣的壓縮儲存

這裡寫圖片描述

問題:用壓縮形式儲存對稱矩陣,實現下面的操作並測試

 void Init(int *&b);//為N階對稱矩陣初始化儲存資料的一維陣列bint Value(int b[], int i, int j);//返回儲存在b[M]中,對應二維陣列A[i][j]的值void Assign(int b[], int e, int i, int j);//將e賦值給對應二維陣列元素A[i][j],要儲存到b[M]中void Disp(int b[]);//輸出壓縮儲存在b中的對稱矩陣void Destroy(int b[]); //銷燬儲存空間
   
  • 1
  • 2
  • 3
  • 4
  • 5

解答:

#include <stdio.h>
#include <malloc.h>#define N 4//為N階對稱矩陣初始化儲存資料的一維陣列Bvoid Init(int *&b){    b = (int*)malloc(sizeof(int)*(N*(N+1)/2));}//返回儲存在b[M]中,對應二維陣列A[i][j]的值int Value(int b[], int i, int j){    if (i>=j)        return b[(i*(i+1))/2+j];    else
        return b[(j*(j+1))/2+i];}//將e賦值給對應二維陣列元素A[i][j],要儲存到B[M]中void Assign(int b[], int e, int i, int j){    if (i>=j)        b[(i*(i+1))/2+j] = e;    else        b[(j*(j+1))/2+i] = e;    return;}//輸出壓縮儲存在b中的對稱矩陣void Disp(int b[]){    int i,j;    for (i=0; i<N; i++)    {        for (j=0; j<N; j++)            printf("%4d",Value(b,i,j));        printf("\n");    }}//銷燬儲存空間void Destroy(int b[]){    free(b);}int main(){    int *b1;  //指向整型的指標,待初始化    int i, j;    int v;    Init(b1);    printf("請輸入對稱矩陣(只需要輸入下三角部分即可)\n");    for(i=0;i<N;i++)    {        printf("輸入第%d行的%d個數據元素: ", i+1, i+1);        for(j=0; j<=i; j++)        {             scanf("%d", &v);             Assign(b1, v, i, j);        }    }    Disp(b1);    Destroy(b1);    return 0;}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述