Example For 3 X 3 Sparse Matrix:
| 1 0 0 |
| 0 0 0 |
| 0 4 0 |
3-Tuple Representation Of Sparse Matrix:
| 3 3 2 |
| 0 0 1 |
| 2 1 4 |
Elements in the first row represents the number of rows, columns and non-zero values in sparse matrix.
First Row - | 3 3 2 |
3 - rows
3 - columns
2 - non- zero values
Elements in the other rows gives information about the location and value of non-zero elements.
| 0 0 1 | ( Second Row) - represents value 1 at 0th Row, 0th column
| 2 1 4 | (Third Row) - represents value 4 at 2nd Row, 1st column
Example Program for 3-Tuple Representation of Sparse Matrix Using Arrays(in C):
#include <stdio.h>
#include <stdlib.h>
int count;
int main() {
int *data, *tuple, row, col, tot, i, j, k =0, x = 0, y = 0;
printf("Enter the no of rows & columns:");
scanf("%d%d", &row, &col);
tot = row * col;
data = (int *) malloc(sizeof (int) * tot);
for (i = 0; i < tot; i++) {
if (y % col == 0 && y != 0) {
y = 0;
x++;
}
printf("data[%d][%d]:", x, y);
scanf("%d", &data[i]);
if (data[i])
count++;
y++;
}
tuple = (int *) malloc(sizeof (int) * (count + 1) * 3);
/* store row, column & count in 3-tuple array - in 1st row */
tuple[k++] = row;
tuple[k++] = col;
tuple[k++] = count;
x = y = 0;
for (i = 0; i < tot; i++) {
if (y % col == 0 && y != 0) {
y = 0;
x++;
}
/* store row, column and non-zero val in 3 tuple */
if (data[i] != 0) {
tuple[k++] = x;
tuple[k++] = y;
tuple[k++] = data[i];
}
y++;
}
printf("Given Sparse Matrix has %d non-zero elements\n", count);
x = y = 0;
/* printing given sparse matrix */
for (i = 0; i < tot; i++) {
if (y % col == 0 && y != 0) {
y = 0;
x++;
printf("\n");
}
printf("%d ", data[i]);
y++;
}
printf("\n\n");
/* 3-tuple represenation of sparse matrix */
printf("3-Tuple representation of Sparse Matrix:\n");
for (i = 0; i < (count + 1) * 3; i++) {
if (i % 3 == 0)
printf("\n");
printf("%d ", tuple[i]);
}
printf("\n\n");
return 0;
}
Output: (C Program For Array Representation Of Sparse Matrix)
Enter the no of rows & columns:3 3
data[0][0]:1
data[0][1]:0
data[0][2]:0
data[1][0]:0
data[1][1]:0
data[1][2]:0
data[2][0]:0
data[2][1]:4
data[2][2]:0
Given Sparse Matrix has 2 non-zero elements
1 0 0
0 0 0
0 4 0
3-Tuple representation of Sparse Matrix:
3 3 2
0 0 1
2 1 4
data[0][0]:1
data[0][1]:0
data[0][2]:0
data[1][0]:0
data[1][1]:0
data[1][2]:0
data[2][0]:0
data[2][1]:4
data[2][2]:0
Given Sparse Matrix has 2 non-zero elements
1 0 0
0 0 0
0 4 0
3-Tuple representation of Sparse Matrix:
3 3 2
0 0 1
2 1 4
No comments:
Post a Comment