Torna indietro   Hardware Upgrade Forum > Mondo Smartphone > Smartphone > Altri produttori (HTC, Acer, BlackBerry, ecc)

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-09-2013, 16:08   #1
mikael_c
Member
 
Iscritto dal: Dec 2008
Città: italia
Messaggi: 80
Modifica codice in C con lista di adiacenza

Devo modificare il codice sottostante in modo che il vettore permutazione nella generazione di tutte le possibili possibilità sceglie solo i vertici adiacenti.Il grafo deve essere rappresentato con lista di adiacenza.
Codice della permutazione
Codice:
/*
VARIABILI GLOBALI:
  n 
  nChr = numero di permutazioni alcolate (inizialmente 0)
  Chr = permutazione 
  Chr1 = permutazione inversa (Chr1[i] = n equivale ad elemento di permutazione non definito
  (se Chr[i]=j, allora Chr1[i]=j)
  Succ = risposta della procedura genTPerm (inizialmente 1)
*/

int Chr[100];  /* vettore soluzione (permutazione) */
int Chr1[100]; /* soluzione inversa */
int nChr=0;    /* numero soluzioni costruite dalla procedura esaustiva */
int Succ=1;    /* flag che indica il successo della procedura esaustiva */
 int n=3;	       /* numero vertici digrafi */
 
/* procedura di inizializzazione dei vettori soluzione (Chr[] e Chr1[]) */

void initChr()
 {
  int i=0;

  for(i=0;i<n;i++)
   { 
       Chr[i]=n;
       Chr1[i]=n;
       
   }
 }

/* procedura di stampa di Chr[] */

void stampaVett()
 {
  int i=0;

  for(i=0;i<n;i++)
   printf ("%d ",Chr[i]);
  printf("\n");
 }

/* procedura esaustiva di calcolo soluzioni */


/* metto 0 nella prima posizione e generola permutazione su 1 2,
poi metto 1 nella prima posizione e genero la permutazione su 0 2, 
ed infine metto 2 nella prima posizione e genero la permutazione su 0 1 , */


void genTPerm(int k)
 {
  int i=0;
  
  if(k>(n-1))
   {
    stampaVett();

    /* verifica se la soluzione trovata è un ciclo: se si succ=1 e termina genTPerm */
    
    nChr++;
    
    if(nChr>n)
     {
     
     Succ=0;
     return  ;
  
        
     }
   }
  else
   for(i=0;i<n;i++)
    {if(Chr1[i]==n)
      {Chr[k]=i;
       Chr1[i]=k;
       genTPerm(k+1);
       Chr1[i]=n;
       Chr[k]=n;
      
      }
    }
 }

/* programma principale */

int  main(void)
 {
  int i=0, k=0;
/* inizializza variabili, vettori e strutture dati */
  nChr = 0;
  initChr(); /* procedura che inizializza Chr e Chr1 */
  genTPerm(0); /* procedura esaustiva per il calcolo di soluzioni */
 
  }
Questo è il codice di un grafo con lista di adiacenza viene eseguito però non so se va bene:
Codice:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define MAX 100

struct nodo {
  int info;
  struct nodo *next;
};


/*
 *	Acquisisce in input una sequenza di n interi e la memorizza
 *	in una lista; restituisce l'indirizzo del primo elemento della lista.
 */

struct nodo *leggiLista(void) {
  struct nodo *p, *primo = NULL;
  int i, n;
  printf("Numero di elementi: ");
  scanf("%d", &n);
  printf("Elementi della lista: ");
  for (i=0; i<n; i++) {
    p = malloc(sizeof(struct nodo));
    scanf("%d", &p->info);
    p->next = primo;
    primo = p;
  }
  return(primo);
}

/*
 *	Acquisice in input le n liste di adiacenza dei vertici del grafo G.
 */

int leggiGrafo(struct nodo *V[]) {
  int i, n;
  printf("\nNumero di vertici del grafo: ");
  scanf("%d", &n);
  for (i=0; i<n; i++) {
    printf("\nLista di adiacenza del vertice %d:\n", i);
    V[i] = leggiLista();
  }
  return(n);
}

/*
 *	Stampa gli elementi di una lista.
 */

void stampaLista(struct nodo *p) {
  while (p != NULL) {
    printf("%d --> ", p->info);
    p = p->next;
  }
  printf("NULL\n");
  return;
}

/*
 *	Stampa le liste di adiacenza dei vertici del grafo G.
 */

void stampaGrafo(struct nodo *V[], int n) {
  int i;
  printf("Liste di adiacenza del grafo:\n");
  for (i=0; i<n; i++) {
    printf("%2d: ", i);
    stampaLista(V[i]);
  }
  return;
}

/*
 *	Genera un array di numeri casuali minori di una soglia.
 */

int generaVettore(int S[], int soglia) {
  int i, n;
  printf("\nNumero di elementi della sequenza casuale: ");
  scanf("%d", &n);
  srand((unsigned)time(NULL));
  for (i=0; i<n; i++)
    S[i] = rand() % soglia;
  return(n);
}

/*
 *	Stampa gli elementi di un vettore di numeri interi.
 */

void stampaVettore(int S[], int n) {
  int i;
  printf("\n");
  for (i=0; i<n; i++)
    printf("%d ", S[i]);
  printf("\n");
  return;
}

/*
 *	Restituisce "vero" (1) se x e y sono adiacenti in G, restituisce
 *	"falso" (0) altrimenti.
 */

int adiacenti(struct nodo *V[], int x, int y) {
  int risp;
  struct nodo *p;
  p = V[x];
  while (p != NULL && p->info != y)
    p = p->next;
  if (p != NULL) 
    risp = 1;
  else
    risp = 0;
  return(risp);
}

/*
 *	Verifica se gli elementi di S rappresentano un cammino sul grafo G.
 *	Restituisce 1 (vero) se S e' un cammino, 0 (falso) altrimenti.
 */

int verificaCammino(int S[], int k, struct nodo *V[], int n) {
  int i, risp=1;
  for (i=0; i<k-1 && risp==1; i++)
    if (!adiacenti(V, S[i], S[i+1]))
      risp = 0;
  return(risp);
}

/*
 *	Funzione principale.
 */

int main(void) {
  struct nodo *V[MAX];
  int n, k, S[MAX];
  n = leggiGrafo(V);
  k = generaVettore(S, n);
  stampaGrafo(V, n);
  stampaVettore(S, k);
  if (verificaCammino(S, k, V, n))
    printf("La sequenza e' un cammino su G\n");
  else
    printf("La sequenza NON e' un cammino su G\n");
  return(0);
}
mikael_c è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
DJI Avata 2 in offerta Prime: drone FPV ...
Microsoft vuole far agire l'IA prima anc...
Ginga porta il monitoraggio delle perfor...
Tesla sorprende Wall Street: 486.532 con...
Cosa succede alle ossa degli astronauti ...
AgriEuro Premium Days: il 6 e 7 ottobre ...
259 euro per 2 TB di SSD PCIe 4.0 (Biwin...
GPT-6 Astra decifra dopo 217 anni una le...
Roborock Saros 20 Neo: pulisce al meglio...
Samsung Galaxy S27 Ultra, nuove conferme...
Offerte Prime Candy: lavatrice ProWash 3...
Tegola su Anthropic, gli agenti AI valgo...
E-bike in carbonio con un prezzo assurdo...
Serrature smart SwitchBot Lock Ultra in ...
NVIDIA DGX Spark da 64 GB: arriva il nuo...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v