- #include<stdio.h>
- typedef struct EBox
- {
- int ivex, jvex;
- struct EBox *ilink, *jlink;
- }EBox;
- typedef struct VexBox
- {
- int data;
- EBox *first;
- }VexBox;
- void lj(VexBox *v, EBox *e, int m, int n);
- int pd(int a, EBox b);
- void print(VexBox *v, EBox *e, int n);
- int main()
- {
- VexBox v[5] = {{1, NULL}, {2, NULL}, {3, NULL}, {4, NULL}, {5, NULL}};
- EBox e[7] = {{1, 2, NULL, NULL}, {1, 3, NULL, NULL}, {1, 4, NULL, NULL},
- {2, 3, NULL, NULL}, {3, 4, NULL, NULL}, {3, 5, NULL, NULL}, {4, 5, NULL, NULL}};
- lj(v, e, 5, 7);
- print(v, e, 5);
- return 0;
- }
- void lj(VexBox *v, EBox *e, int m, int n)
- {
- int i, j = 0;
- for(i = 0; i < m; i++)
- {
- for(j = 0; j < n; j++)
- {
- if(NULL == v[i].first)
- {
- if(1 == pd(v[i].data, e[j]))
- {
- continue;
- }
- else
- {
- v[i].first = &e[j];
- }
- }
- else
- {
- break;
- }
- }
- }
- for(i = 0; i < n - 1; i++)
- {
- for(j = i + 1; j < n; j++)
- {
- if(NULL == e[i].ilink || NULL == e[i].jlink)
- {
- if(1 == pd(e[i].ivex, e[j]))
- {
- if(1 == pd(e[i].jvex, e[j]))
- {
- continue;
- }
- else
- {
- if(NULL == e[i].jlink)
- {
- e[i].jlink = &e[j];
- }
- else
- {
- continue;
- }
- }
- }
- else
- {
- if(NULL == e[i].ilink)
- {
- e[i].ilink = &e[j];
- }
- else
- {
- continue;
- }
- }
- }
- else
- {
- break;
- }
- }
- }
- }
- int pd(int a, EBox b)
- {
- if(a == b.ivex || a == b.jvex)
- {
- return 0;
- }
- else
- {
- return 1;
- }
- }
- void print(VexBox *v, EBox *e, int n)
- {
- int i;
- EBox *p = NULL;
- for(i = 0; i < n; i++)
- {
- printf("%3d :%3d", i, v[i].data);
- if(NULL == v[i].first)
- {
- printf("\\n");
- continue;
- }
- else
- {
- p = v[i].first;
- printf(" ----> {%d-%d}", (*p).ivex, (*p).jvex);
- }
- while(v[i].data == (*p).ivex || v[i].data == (*p).jvex)
- {
- if(v[i].data == (*p).ivex)
- {
- if(NULL == (*p).ilink)
- {
- printf("\\n");
- break;
- }
- else
- {
- p = (*p).ilink;
- printf(" ----> {%d-%d}", (*p).ivex, (*p).jvex);
- }
- }
- else
- {
- if(NULL == (*p).jlink)
- {
- printf("\\n");
- break;
- }
- else
- {
- p = (*p).jlink;
- printf(" ----> {%d-%d}", (*p).ivex, (*p).jvex);
- }
- }
- }
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/281120137566.html
来源: http://www.codesnippet.cn/detail/281120137566.html