Visualizzazione dei risultati da 1 a 4 su 4

Discussione: liste in C

  1. #1

    liste in C

    Ciao ragazzi mi sapete dire come fare una funzione che mi inverte una lista?

    esempio:

    2->6->9->3->NULL

    diventa:

    3->9->6->2->NULL

    grazie

  2. #2
    se vuoi utilizzare un array per memorizzare la lista è semplice:
    basta copiare l'elemento in posizione 'i' dell'array originale nella posizione 'MAX_SIZE_ARRAY-i-1' dove MAX_SIZE_ARRAY è la dimensione massima dell'array, il tutto con una semplice for che va da 0 a MAX_SIZE_ARRAY.

    altrimenti se vuoi utilizzare una lista dovrai invece scorrere la lista originale e aggiungere il contenuto di ogni elemento della lista alla seconda lista, pwerò gli inserimenti deviono avvenire in testa in modo che lil primo elemento della lista originale risulta l'ultimo nella seconda lista e così via ...

    spero per te che conosca le liste altrimenti ...

    www.matteosteri.it

  3. #3
    Utente di HTML.it L'avatar di Ilmalcom
    Registrato dal
    Oct 2002
    Messaggi
    1,345

    Re: liste in C

    Originariamente inviato da maldestro
    Ciao ragazzi mi sapete dire come fare una funzione che mi inverte una lista?

    esempio:

    2->6->9->3->NULL

    diventa:

    3->9->6->2->NULL

    grazie
    Single-linked o double-linked? Nel secondo caso è più semplice. Lista di interi o una lista generica di strutture? Prima è bene se si chiarisce questo

  4. #4
    guarda io ho creato la funzione di inversione lista in questo modo. Dimmi se fa schifo o se può andare:

    codice:
    Num *Reverse(struct numeri *testa)
    {
    	struct numeri *aux, *x;
    	aux = testa;
    	x = aux;
    	testa = testa->next;
    	aux = testa;
    	testa = testa->next;
    	aux->next = x;
    	x->next = NULL;
    	while(testa->next != NULL){
    		x = aux;
    		aux = testa;
    		testa = testa->next;
    		aux->next = x;
    	}
    	testa->next = aux;
    	return testa;
    }
    calcola che testa era il puntatore al primo elemento della lista, e dopo questa funzione diventa il puntatore al primo elemento della lista rovesciata. non ho usato una seconda lista, ma ho solo invertito tutti i puntatori ->next

    ti piace fatto cosi?

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.