Visualizzazione dei risultati da 1 a 10 su 24

Hybrid View

  1. #1
    Mhh penso di aver capito il procedimento.. ma per le altre funzioni devo usare ad esempio:
    codice:
    struct elemento* delElemento(struct elemento *list_head)
    ?

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Quote Originariamente inviata da Ronald940 Visualizza il messaggio
    Mhh penso di aver capito il procedimento.. ma per le altre funzioni devo usare ad esempio:
    codice:
    struct elemento* delElemento(struct elemento *list_head)
    ?
    Sì, è una buona idea quella di restituire sempre il puntatore alla testa della lista aggiornata.

  3. #3
    Allora grazie ai vostri consigli sono riuscito a capire gran parte del programma.. Ma restano due problemi:
    1. Nella funzione ordLista quando stampo (manualmente - visto il problema successivo), mi stampa la lista ordinata tranne il primo elemento. ordinato..
    Es.
    Lista -> 4 -> 8 -> 3 -> 9 -> 2 -> NULL
    Me lo ordina e mi stampa..
    Lista -> 3 -> 4 -> 8 -> 9 -> NULL

    2. Inoltre non riesco a creare la funzione stampa da utilizzare nelle varie funzioni e nel main(). Preticamente non so che parametri passare per rendere performante l'algoritmo

    Questo è il codice:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    struct elemento{ 
    int valore; 
    struct elemento *next;
    };
    void menu();
    struct elemento *insElemento(struct elemento *); 
    struct elemento *ordLista(struct elemento *);
    void printElemento();
    int main(){
     struct elemento *Lista=NULL ; 
     int comando; 
     do{
     menu(); 
     printf("\nComando:\t"); 
     scanf("%d", &comando); 
     
     switch(comando){  
     case 1:{   
     Lista=insElemento(Lista);   
     break;  
     }   
     case 2:{   
     Lista=ordLista(Lista);   
     break;  
     } 
     case 3:{
     //PrintLista();
     break;
     }
     } 
    }while(true);
    return 0; 
    }
    void menu(){ 
     printf("\n--------------------------"); 
     printf("\n1 - Inserisci Elemento\n"); 
     printf("2 - Ordinamento Lista\n"); 
     printf("3 - Visualizza Lista\n"); 
     printf("--------------------------\n");
    }
    //Inserimento elementi lista
    struct elemento *insElemento(struct elemento *list_head){    
    struct elemento *list_pointer, *list_record;    
    int i, n=0, val, newval; 
    printf("Specificare il numero di elementi della lista:  "); 
    scanf("%d", &n);    
    list_record = (struct elemento *)malloc(sizeof(struct elemento));    
    printf("\nInserisci il 1 elemento: ");    
    scanf("%d", &val); 
    list_record->valore = val; 
    list_head=list_record; 
    list_pointer = list_head; 
    for(i=2; i<=n; i++){          
     list_record->next = (struct elemento *)malloc(sizeof(struct elemento));          
     list_record = list_record->next;          
     printf("\nInserisci il %d elemento: ", i);          
     scanf("%d", &newval);          
     list_record->valore = newval;                 
    }        
    list_record->next = NULL;       
    list_pointer = list_head;
     
    //Stampa della lista 
    printf("\nlista -> "); 
    while(list_pointer != NULL){    
    printf("%d", list_pointer->valore);        
    printf(" -> ");       
    list_pointer = list_pointer->next;    
    } 
    printf(" NULL");     
    return list_head; 
    }  
    struct elemento *ordLista(struct elemento *list_head) {
    struct elemento *list_pointer, *list_record;
    int flag, temp;
    list_record = NULL;
      flag = 1;
      while (flag == 1) {
        list_pointer = list_head;
        flag = 0;
        while (list_pointer->next != list_record) {
          if (list_pointer->valore > (list_pointer->next)->valore) {
            temp = list_pointer->valore;
            list_pointer->valore = (list_pointer->next)->valore;
            (list_pointer->next)->valore = temp;
            flag = 1;
          }
          list_pointer = list_pointer->next;
        }
        list_record = list_pointer;
      }
     //printElemento();  
      return list_head;
    }
    struct printElemento(){
    struct elemento *list_pointer
    printf("\nlista -> "); 
    while(list_pointer != NULL){    
    printf("%d", list_pointer->valore);        
    printf(" -> ");       
    list_pointer = list_pointer->next;     
    } 
    printf(" NULL"); 
    }
    Ah dimenticavo, grazie per le risposte precedenti..

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 © 2025 vBulletin Solutions, Inc. All rights reserved.