c数据结构 三元组

 1 #include
 2 #include
 3 
 4 #define Max 80
 5 #define M 4
 6 #define N 3 
 7 
 8 typedef struct {
 9     int r;//
10     int c;//
11     int d;//元素值 
12 }tyNode;
13 typedef struct {
14     int rows;//最大行 
15     int cols;//最大列 
16     int nums;//元素数量 
17     tyNode data[Max];
18 }TSMatrix; 
19 
20 //稀疏矩阵转换成三元组
21 
22 void CreatMat(TSMatrix &t,int A[M][N])
23 {
24     int i,j;
25     t.rows=M;
26     t.cols=N;
27     t.nums=0;
28     for(i=0;i){
29         for(j=0;j){
30             if(A[j][i]!=0)/*只选非零的项*/{
31                 t.data[t.nums].r=j;
32                 t.data[t.nums].c=i;
33                 t.data[t.nums].d=A[j][i];
34                 t.nums++; 
35             }
36         }
37     }
38 }
39 
40 
41 
42 //打印出三元组
43 void dayin(TSMatrix &t){
44     int i;
45     for(i=0;i){
46         printf("(%d %d %d)\t",t.data[i].r,t.data[i].c,t.data[i].d);
47     }
48 } 
49 
50 int shuzu(int A[M][N])
51 {
52     int i,j;
53     for(i=0;i){
54         printf("为第%d行赋值\n",i+1);
55         for(j=0;j){
56             scanf("%d",&A[j][i]);
57         }
58     }
59 }
60 
61 int main()
62 {
63     TSMatrix t;
64     printf("选择数字的行列\n");
65     int A[M][N];
66     shuzu(A); 
67     printf("\n--------------\n");
68     printf("将矩阵改为三元组\n");
69     CreatMat(t,A);
70     printf("\n--------------\n");
71     printf("将矩阵改为三元组\n");
72     dayin(t);
73     
74  } 

 

你可能感兴趣的:(c数据结构 三元组)