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