看严蔚敏的数据结构关于稀疏矩阵相乘的一节,觉得有点复杂,自己按照个人理解,写了一个相乘的程序,把相乘后的矩阵先转化成了一维数组,代码如下,大家指点指点(注:本人非计算机专业,若果有低级错误,见笑)
1 #include <stdio.h>
2
3 #include <stdlib.h>
4
5
6
7 #define max 12
8
9
10
11 typedef struct{
12
13 int i,j;
14
15 int e;
16
17 }triple;
18
19
20
21 typedef struct{
22
23 triple data[max+1];
24
25 int mu,tu,nu;
26
27 }tsmatrix;
28
29
30
31 void main()
32
33 {
34
35 tsmatrix M;
36
37 tsmatrix N;
38
39 int Q[7]={0};//数组下标从1开始
40
41 int p=1,q=1;//下面很长的一部分,是直接输入三元组,
42
43 int s=1;
44
45
46
47 M.mu=3;//行数
48
49 M.nu=5;//列数
50
51 M.tu=6;//非零元的个数
52
53
54
55 M.data[1].i=1;
56
57 M.data[1].j=1;
58
59 M.data[1].e=3;
60
61
62
63 M.data[2].i=1;
64
65 M.data[2].j=4;
66
67 M.data[2].e=5;
68
69
70
71 M.data[3].i=1;
72
73 M.data[3].j=5;
74
75 M.data[3].e=-2;
76
77
78
79 M.data[4].i=2;
80
81 M.data[4].j=2;
82
83 M.data[4].e=-1;
84
85
86
87 M.data[5].i=3;
88
89 M.data[5].j=1;
90
91 M.data[5].e=2;
92
93
94
95 M.data[6].i=3;
96
97 M.data[6].j=5;
98
99 M.data[6].e=4;
100
101
102
103 N.mu=5;//行数
104
105 N.nu=2;//列数
106
107 N.tu=6;//非零元的个数
108
109
110
111 N.data[1].i=1;
112
113 N.data[1].j=2;
114
115 N.data[1].e=2;
116
117
118
119 N.data[2].i=2;
120
121 N.data[2].j=1;
122
123 N.data[2].e=1;
124
125
126
127 N.data[3].i=3;
128
129 N.data[3].j=1;
130
131 N.data[3].e=-2;
132
133
134
135 N.data[4].i=3;
136
137 N.data[4].j=2;
138
139 N.data[4].e=4;
140
141
142
143 N.data[5].i=5;
144
145 N.data[5].j=1;
146
147 N.data[5].e=3;
148
149
150
151 N.data[6].i=5;
152
153 N.data[6].j=2;
154
155 N.data[6].e=6;
156
157
158
159 for(p=1;p<=M.tu;p++) //开始进入正题
160
161 {
162
163 for(q=1;q<=N.tu;q++)
164
165 {
166
167 if(M.data[p].j==N.data[q].i)
168
169 {
170
171 printf("p=%d,q=%d \n",p,q);//打印测试
172
173
174
175 printf("%d,%d,%d \n",M.data[p].e,N.data[q].e,(M.data[p].i-1)*N.nu+N.data[q].j);//打印测试
176
177
178
179 Q[(M.data[p].i-1)*N.nu+N.data[q].j]+=M.data[p].e*N.data[q].e;//将相乘的结果先存入一维数组
180
181 }
182
183 else continue;
184
185 }
186
187 }
188
189
190
191 for(s=1;s<=6;s++)
192
193 {
194
195 printf("%d ",Q[s]);//打印一维数组
196
197 }
198
199 }
200
posted on 2010-08-04 13:06
ypp 阅读(474)
评论(0) 编辑 收藏 引用 所属分类:
c++