其他分享
首页 > 其他分享> > 5.26

5.26

作者:互联网

 

 

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 typedef struct Node{
 4     int row,col,data;
 5     Node*right,*down;
 6 }OLNode,*OLink;
 7 typedef struct{
 8     OLink *Rhead,*Chead;
 9     int m,n,length;
10 }CrossList;
11 void CreateIns(CrossList*C,OLink e)
12 {
13     OLink t;
14     if(C->Rhead[e->row]==NULL)C->Rhead[e->row]=e;
15     else{
16         t=C->Rhead[e->row];
17         while(t->right)t=t->right;
18         t->right=e;
19     }
20     if(C->Chead[e->col]==NULL)C->Chead[e->col]==e;
21     else{
22         t=C->Chead[e->col];
23         while(t->down)t=t->down;
24         t->down=e;
25     }
26 }
27 void Create(CrossList*C)
28 {
29     OLink p;
30     CrossList*T=C;
31     scanf("%d %d %d",&C->m,&C->n,&C->length);
32     C->Rhead=(OLink*)malloc(sizeof(OLink)*(C->m+1));
33     C->Chead=(OLink*)malloc(sizeof(OLink)*(C->n+1));
34     for(int t=1;t<=C->m;t++)C->Rhead[t]=NULL;
35     for(int t=1;t<=C->n;t++)C->Chead[t]=NULL;
36     for(int i=1;i<=C->length;i++)
37     {
38         p=(OLink)malloc(sizeof(OLNode));
39         scanf("%d %d %d",&p->row,&p->col,&p->data);
40         p->right=NULL,p->down=NULL;
41         CreateIns(T,p);
42     }
43 }
44 void Order(CrossList*C)
45 {
46     OLink t;
47     int n;
48     for(n=1;n<=C->m;n++)
49     {
50         if(C->Rhead[n])
51         {
52             t=C->Rhead[n];
53             while(t)
54             {
55             printf("第%d行第%d列:%d\n",t->row,t->col,t->data);
56             t=t->right;
57         }
58         }
59     }
60     
61 }
62 int main()
63 {
64     CrossList C;
65     Create(&C);
66     Order(&C);
67     return 0;
68 }

 

标签:right,int,5.26,Rhead,Chead,OLink,row
来源: https://www.cnblogs.com/JT3895/p/15664437.html