| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1191 人关注过本帖
标题:[求助]关于数组的编程~
取消只看楼主 加入收藏
HaseoDG
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-11-2
收藏
 问题点数:0 回复次数:4 
[求助]关于数组的编程~

1.编写程序,实现利用三元组表进行两个稀疏矩阵相加的算法。

要求:(1)随机产生两个可相加的稀疏矩阵(二维);

(2)将产生的稀疏矩阵用两个三元组表的顺序存储结构存储;

(3)将两稀疏矩阵相加的结果存储在第三个三元组表中。

搜索更多相关主题的帖子: 编写程序 三元 
2006-11-02 11:55
HaseoDG
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-11-2
收藏
得分:0 

算法自己也知道~但怎样编程啊~
#define MaxSize 10 //用户自定义
  typedef int DataType; //用户自定义
  typedef struct
   { //定义三元组
    int i,j;
    DataType v;
   }TriTupleNode;

  typedef struct
   { //定义三元组表
    TriTupleNode data[MaxSize];
    int m,n,t;//矩阵行,列及三元组表长度
   }TriTupleTable;

  //以下为矩阵加算法
  void AddTriTuple( TriTupleTable *A, TriTupleTable *B, TriTupleTable *C)
   {//三元组表表示的稀疏矩阵A,B相加
    int k,l;
    DataType temp;
    C->m=A->m;//矩阵行数
    C->n=A->n;//矩阵列数
    C->t=0; //三元组表长度
    k=0; l=0;
    while (k<A->t&&l<B->t)
     {if((A->data[k].i==B->data[l].i)&&(A->data[k].j==B->data[l].j))
       {temp=A->data[k].v+B->data[l].v;
        if (!temp)//相加不为零,加入C
         {C->data[c->t].i=A->data[k].i;
          C->data[c->t].j=A->data[k].j;
          C->data[c->t++].v=temp;
         }
        k++;l++; 
       }
     if ((A->data[k].i==B->data[l].i)&&(A->data[k].j<B->data[l].j))
       ||(A->data[k].i<B->data[l].i)//将A中三元组加入C
      {C->data[c->t].i=A->data[k].i;
       C->data[c->t].j=A->data[k].j;
       C->data[c->t++].v=A->data[k].v;
       k++;
      }
     if ((A->data[k].i==B->data[l].i)&&(A->data[k].j>B->data[l].j))
       ||(A->data[k].i>B->data[l].i)//将B中三元组加入C
      {C->data[c->t].i=B->data[l].i;
       C->data[c->t].j=B->data[l].j;
       C->data[c->t++].v=B->data[l].v;
       l++; 
      }
     }
    while (k<A->t)//将A中剩余三元组加入C
     {C->data[c->t].i=A->data[k].i;
      C->data[c->t].j=A->data[k].j;
      C->data[c->t++].v=A->data[k].v;
      k++;
     }
    while (l<B->t)//将B中剩余三元组加入C
     {C->data[c->t].i=B->data[l].i;
      C->data[c->t].j=B->data[l].j;
      C->data[c->t++].v=B->data[l].v;
      l++;
     }
   }

2006-11-02 12:02
HaseoDG
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-11-2
收藏
得分:0 
谢谢了~
但相乘和相加........
总之也帮了我不少了~
2006-11-03 00:54
HaseoDG
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-11-2
收藏
得分:0 
感谢了~
2006-11-04 09:52
HaseoDG
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-11-2
收藏
得分:0 

没有main函数~现在实验中~
实验失败~怎么才能运行啊~

[此贴子已经被作者于2006-11-12 11:26:30编辑过]

2006-11-12 10:35
快速回复:[求助]关于数组的编程~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024887 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved