Sei sulla pagina 1di 1

C:\Users\domen\Documents\Algoritmi e Strutture Dati\Miei Codici\COMPITI DA STAMPARE\11062015.

cpp venerdì 29 gennaio 2016 17:05


/*

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>

/*unsigned int ** prodotto(unsigned int *v, int dim){


int i,j,k;
unsigned int **m;

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-