Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    13

    [C] Ordinamento lista concatenata aggiungere elementi e cancellarli.

    Salve a tutti, ho cercato in giro in rete e non riesco a trovare da nessuna parte alcuna guida che riesca a soddisfare le caratteristiche del mio programma.
    Quello che non riesco a trovare/fare dopo aer completato la funzione stampa è:
    1. L'ordinamento della lista in ordine crescente e decrescente
    2. Aggiungere elementi alla lista dopo che la lista è stata già creata
    3. Eliminare elementi della lista

    Questo è il programma che al momento ho scritto... Grazie in anticipo.
    codice:
    #include <stdio.h>#include <stdlib.h>
    #include <string.h>
    
    
    struct data {
        int a;
        char n[20];
        struct data *next;
    };
    //si crea la testa della lista
    
    
    struct data *crea(){
        char risp[20];
        struct data *head, *pointer;
        head=(struct data*)malloc(sizeof(struct data));
        printf ("Inserisci il nome: ");
        scanf("%s",head->n);
        printf ("inserire l'eta': ");
        scanf ("%i", &head->a);
        pointer=head;
        while (pointer->next!=NULL){
            printf("Vuoi inserire un altro elemento?\n");
            scanf("%s", risp);
            if(strcmp(risp,"si")==0){
            pointer->next=(struct data*)malloc(sizeof(struct data));
        pointer=pointer->next;
        printf ("Inserisci il nome: ");
        scanf("%s",pointer->n);
        printf ("inserire l'eta': ");
        scanf ("%i", &pointer->a);}
            else if(strcmp(risp,"no")==0)
            pointer->next=NULL;
            else 
                printf ("Devi mettere si o no.\n");}
        return head;}
        
        //dobbiamo fare la funzione stampa
        void stampa (struct data *stampando){
        while(stampando!=NULL){
            printf("L'eta' di %s e' %i\n", stampando->n, stampando->a);
            stampando=stampando->next;
            }        
        }
        
        int main(){
            struct data *lista;
            int g=1;
            while (g<6 && g>0 ){
                printf("Cosa vuoi fare?\n1. Crea una lista\n2. Stampa la lista\n3. Termina programma ");
                scanf("%i",&g);
                switch(g){
                    case 1: lista=crea();
                    break;
                    case 2: stampa(lista);
                    break;
                    case 3: return 0;
                    break;
                    
                }
            }
        }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Comincia ad affrontare il primo problema ... l'ordinamento ...

    Conosci qualche algoritmo di ordinamento?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    13
    Il bubblesort ai tempi del for, ma non l'ho mai applicato altrove.

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.