Visualizzazione dei risultati da 1 a 10 su 15

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    8

    Implementare Struttura Dati Lista

    ciao ragazzi ho bisogno del vs aiuto!
    ho questo esercizio sotto mano

    "Progettare una applicazione c che gestisca una matrice di interi M ed una lista di interi L . M è una matrice quadrata n x n con n scelto in maniera dinamica (ad es: inserito dall’utente in fase di esecuzione). Implementare le strutture dati e le seguenti fuzioni:
    Serializza: data la matrice M di dimensione nxn restituisce una lista contenente n2 elementi. Gli elementi nella lista sono gli elementi di M ordinati per righe a partire dalla prima riga fino all’ultima.
    Deserializza: Data una lista L contenente n2 interi, restituisce una matrice nxn che contiene gli elementi di L organizzati per file di lunghezza n. Nota: utilizzare sempre l’allocazione dinamica per le matrici.
    Main: nella funzione main l’utente specifica la dimensione n della matrice e riempie la matrice M di valori interi. L’applicazione serializza la matrice, stampa a video la lista serializzata, somma il valore 5 ad ogni elementro della lista, deserializza la lista e termina visualizzando la matrice che contiene gli elementi deserializzati della lista."

    io l horisolto non utilizzando una struttura dati di tipo lista, poichè ho serie difficoltà nel capire come si ragiona e si procede utilizzando una lista, potreste indicarmi come fare? mi basterebbe anche che mi spiegate il procedimento da eseguire. al resto "come sempre" ci penso sempre io :-)
    questo è il codice che ho battuto ma che non è corretto.

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    typedef struct nodo *lista;
    typedef struct nodo {
    int val;
    lista next;
    
     int deserializza (int n,int **mat,int L[]){
    
     int i, j;
     int x=0;
    
     for (i=0;i<n;i++)
     for (j=0;j<n;j++)
     {
    
     {  mat[i][j]=L[x];
    
     }x++;}}
    
    
    int serializza (int n,int**mat,int L[])
    {int i, j;
    int x=0;
    
    {for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
    L[x]=mat [i][j];
      x++;}  }}}
    
    main()
    {
        int n,**mat,i,j,x;
    
         printf(" dimensione di n della matrice ?  ");
        scanf("%d",&n);
        x=n*n;
        int L[x];
            mat = (int**) malloc (n *sizeof (int*)); /*allocamento*/
        for (i=0; i<n ; i++)
        {    mat[i]= (int*)malloc (n* sizeof (int));}
    printf("Lettura matrice %dX%d elemento ;\n", n, n);
      for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
    
          scanf("%d",& mat[i][j]);}
    }
          serializza (n,mat,L);
          for(i = 0; i < x; i++){
              L[i]+=5;
            printf("%d",L[i]);
            printf("\t");}
    
     deserializza (n,mat,L);
     printf("\n");
      printf("\n");
      for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
         printf("%3d", mat[i][j]);
      }printf("\n");}
    
    
    
      for (i=0; i< n ; i++)
           free (mat[i]);
        free (mat);
    
    
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2016
    Messaggi
    2
    Ciao Giovd1,
    questo e' uno degli esercizi del corso di Algoritmi e programmazione avanzata se nn sbaglio... sto cercando di risolverlo anche io e ho lo stesso problema.
    Sei riuscito a trovare una soluzione??

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Essendo un thread di 4 anni fa non ha molto senso continuare ... magari l'utente non legge più ...

    Perché non proponi un tuo nuovo thread con il tuo problema su cui discutere?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2016
    Messaggi
    2
    ok. se non rispondera' proporro un nuovo thread.

    Quote Originariamente inviata da oregon Visualizza il messaggio
    Essendo un thread di 4 anni fa non ha molto senso continuare ... magari l'utente non legge più ...

    Perché non proponi un tuo nuovo thread con il tuo problema su cui discutere?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Quote Originariamente inviata da jbalt Visualizza il messaggio
    ok. se non rispondera' proporro un nuovo thread.
    Il suo ultimo intervento risale al 2012... non frequenta più.
    Del resto, la discussione stessa è di 4 anni fa... apri pure una nuova discussione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.