Untitled

 avatar
unknown
plain_text
4 years ago
2.6 kB
6
Indexable
void add_edge(Graph* G, int x, int y) {
    G->edges[G->m].x=x;
    G->edges[G->m].y=y;
    G->m++;
}

bai2
void add_edge(Graph* G, int x, int y) {
    if(x<1||x>G->n || y<1 || y>G->n) {
     return;
    }
    G->edges[G->m].x=x;
    G->edges[G->m].y=y;
    G->m++;
}

bai3
void add_edge(Graph* G, int e, int x, int y) {
    if(x==y) {
       G->A[x][e]=2 ;
    }
    if(G->A[x][e] && G->A[y][e]) {
        G->A[x][e]=2;
        G->A[y][e]=2;
    }
    else {
        G->A[x][e]=1;
        G->A[y][e]=1;
    }
}

4
void add_edge(Graph* G, int e, int x, int y) {
    G->A[x][e]=1;
    G->A[y][e]=1;
}

5
List neighbors(Graph* G, int x) {
    List L;
    make_null(&L);
    int e, y;
    for (y = 1; y <= G->n; y++) {
    	if (x == y) continue;
        for (e = 1; e <= G->m; e++)
            if (G->A[x][e] > 0 && G->A[y][e] > 0) {
                push_back(&L, y);
                break;
            }
    }
    return L;
}

6
int edgeCount(Graph *G) {
    int i, j, count=0;
    for(i=1; i<=G->n; i++) {
        for(j=1; j<=G->n; j++) {
            count+=G->A[i][j];
        }
    }
    return count/2;
}

7
#include<stdio.h>
#define MAX_N 100

typedef struct{
    int n; 
    int A[MAX_N][MAX_N];
}Graph;

void init_graph(Graph *G, int n){
    int i,j;
    G->n=n;
    for ( i=1; i<= n; i++){ 
        for ( j=1; j<= n; j++) 
        G->A[i][j]=0;
    }
}

void add_edge(Graph *G, int x, int y){
    G->A[x][y]=1;
    G->A[y][x]=1;
}

int main(){
    int e,n,m,u,v,i,j;
    Graph G;
    freopen("dt1.txt","r",stdin);
    scanf("%d%d", &n, &m);
    init_graph(&G, n);
    for(e=1; e<=n; e++){
        scanf("%d%d",&u ,&v);
        add_edge(&G, u, v);
    }
    
    for (i=1; i<=G.n; i++){
        for (j=1; j<=G.n; j++){
            printf("%d ",G.A[i][j]);
        }
        printf("\n");
    }
    return 0;
}

8
#include<stdio.h>
typedef struct{
    int n,m;
    int A[100][100];
}Graph;

void init_graph(Graph *G, int x){
    int i,j;
    G->n=x;
    for(i=1;i<=G->n;i++){
        for(j=1;j<=G->n;j++){
            G->A[i][j]=0;
        }
    }
}
void add_edge(Graph *G, int x, int y){
    G->A[x][y]=1;
    G->A[y][x]=1;
    G->m++;
}
int count(Graph *G,int x){
    int i,def=0;
    for(i=1;i<=G->n;i++){
        def+=G->A[x][i];
    }
    return def;
}
int main(){
    Graph G;
    int n, m, u, v,  e;
    scanf("%d %d", &n, &m);
    init_graph(&G, n);

    for (e = 0; e < m; e++) {
        scanf("%d %d", &u, &v);
        add_edge(&G, u, v);
    }
    int i, min=999,num;
    for(i=1;i<=u;i++){
        if(count(&G,i)<min){
            min=count(&G,i);
            num=i;
        }
    }
    printf("%d %d",num,min);
    return 0;
}
Editor is loading...