Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Un grafo non pesato e non orientato di dim2 nodi è codificato come vettore di 32 interi.
Il bit j-esimo dell'i-esimo intero, se posto a 1, rappresenta la connessione tra il nodo
i-esimo e il nodo j-esimo.
Partendo da un grafo così codificato, scrivere una funzione C che restituisca un intero
contenente
tutti i nodi raggiungibili dal nodo k con cammini di lunghezza l minore di 5
*/
#include <stdio.h>
#include <stdlib.h>
ia
m=(unsigned int **)malloc(sizeof(unsigned int*)*3);
for(i=0;i<3;++i) m[i]=(unsigned int *)malloc(sizeof(unsigned int)*3);
for(i=0;i<3;++i)
er
for(j=0;j<3;++j)
m[i][j]=0;
for(i=0;i<dim;i++)
for(j=0;j<dim;j++)
for(k=0;k<dim;++k)
gn
m[i][j]+=((v[i]<<k) & (v[i]<<j) >> (dim-1)) & 1;
return m;
}
*/
int main(){
ge
int dim=3;
unsigned int v[]={5,7,3};
unsigned int m[dim][dim];
int i,j,k;
for(i=0;i<dim;i++)
In
for(j=0;j<dim;j++)
m[i][j]=0;
for(i=0;i<dim;i++)
for(j=0;j<dim;j++)
for(k=0;k<dim;++k)
m[i][j]+=((v[i]<<k) & (v[i]<<j) >> (dim-1)) & 1;
re
for(i=0;i<3;++i){
for(j=0;j<3;++j)
printf("%u\t", m[i][j]);
printf("\n");
}
return 0;
ve
}
Vi
-1-