<% dim ModuleName,InfoID,ChannelShortName,CorrelativeArticle,InstallDir,ChannelDir,Keyword,PageTitle,ArticleIntro,Articlecontent Keyword=stripHTML("矩阵,三元组,存储结构") PageTitle=stripHTML("矩阵三元组存储结构定义") ArticleIntro=stripHTML("") Articlecontent=stripHTML("                 C++ Code jjbran    #include<stdio.h>    #define MAXSIZE 1000//非…") ModuleName = stripHTML("programme") InfoID = stripHTML("117067") ChannelShortName=stripHTML("编程") InstallDir=stripHTML("http://www.77169.com/") ChannelDir=stripHTML("programme") %> 矩阵三元组存储结构定义 - 华盟网 - http://www.77169.com
您现在的位置: 华盟网 >> 编程 >> C语言 >> 正文

矩阵三元组存储结构定义

2014/6/19 作者:不详 来源: 华盟收集
导读 <% if len(ArticleIntro)<3 then Response.Write Articlecontent 'Response.Write "Articlecontent" else Response.Write ArticleIntro 'Response.Write "ArticleIntro" end if %>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  C++ Code jjbran
    #include<stdio.h>
    #define MAXSIZE 1000//非零元素的个数最多为1000
    typedef struct
    {
    int row;
    int col;
    int e;
    } Triple;
    typedef struct
    {
    Triple data[MAXSIZE];//非零元素的三元组表
    int m;//矩阵的行数
    int n;//矩阵的列数
    int non_zero_num;//非零元数的个数
    } XSMatrix;
    XSMatrix XSM_Info_Input(XSMatrix s)
    {
    int i;
    printf("输入矩阵的行数:");
    scanf("%d", &s.m);
    printf("输入矩阵的列数:");
    scanf("%d", &s.n);
    printf("输入矩阵的非零元素的个数:");
    scanf("%d", &s.non_zero_num);
    for (i = 0; i < s.non_zero_num; i++)
    {
    printf("输入第%d个非零元数的信息:\n", i + 1);
    printf("行下标:");
    scanf("%d", &s.data[i].row);
    printf("列下标:");
    scanf("%d", &s.data[i].col);
    printf("元素的值");
    scanf("%d", &s.data[i].e);
    }
    return s;
    }
    void XSM_Info_Output(XSMatrix s)
    {
    int i;
    printf("\n稀疏矩阵行数和列数:%d\t%d\n", s.m, s.n);
    printf("稀疏矩阵三元组表如下:\n");
    printf("行下标\t列下标\t值\n");
    for (i = 0; i < s.non_zero_num; i++)
    {
    printf("%d\t%d\t%d\n", s.data[i].row, s.data[i].col, s.data[i].e);
    }
    }
    //列序递增转置法
    XSMatrix TransXSM(XSMatrix s)
    {
    XSMatrix d;
    int i, j, k = 0;
    d.m = s.n;
    d.n = s.m;
    d.non_zero_num = s.non_zero_num;
    for (i = 0; i < s.n; i++)
    {
    for (j = 0; j < s.non_zero_num; j++)
    {
    if (s.data[j].col == i)
    {
    d.data[k].row = s.data[j].col;
    d.data[k].col = s.data[j].row;
    d.data[k].e = s.data[j].e;
    k++;
    }
    }
    }
    return d;
    }
    main()
    {
    XSMatrix source, dest;
    source = XSM_Info_Input(source);
    XSM_Info_Output(source);
    dest = TransXSM(source);
    XSM_Info_Output(dest);
    }

编程栏目相关内容