|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
[C] Code: Inversione di una coda
Questa funzione dovrebbe invertire una coda modificando la coda presa in ingresso e non creandone una nuova, non capisco perchè non stampa niente, forse sbaglio qualche funzione nei file .h. La funzione è giusta?
Codice HTML:
codaPtr Inverti(codaPtr C) { pilaPtr P=NULL; while(Empty(C)==0) { P=Push(P,Inizio(C)); C=Eliminazione(C); } while(Empty(P)==0) { C=Inserimento(C,Top(P)); Pop(P); } return C; } |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: May 2006
Città: Bari
Messaggi: 274
|
da quello che mi ricordo io quando togli un elemento da una coda questo elemento viene perso. quindi devi usare x forza una struttura dati di appoggio, magari in una PILA, e poi fare uscire i dati dalla pila (che verranno presi nell'ordine inverso).
Spero di non aver detto cavolate ![]() ciao
__________________
MY PC --> Seasonic M12-500Watt + Asus P5B Deluxe WiFi/AP + Intel Q9550 + 4 GB G.Skill 1066Mhz + 1 Hd W.D. 74 GB Raptor 10kRpm + Seagate 750GB + Asus Nvidia 9800GTX! |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
infatti li tolgo dalla coda e li metto nella pila...e poi li rimetto nella coda e quindi saranno in ordine inverso
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Sei sicuro che Eliminazione ed Inserimento funzionino bene? Eliminazione deve eliminare il primo elemento ed Inserimento deve fare un inserimento in fondo alla coda.
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Penso che la strategia migliore sia affrontare il problema in forma ricorsiva:
la tua funzione codaPtr inverti(codaPtr&) può scorrere fino all'ultimo elemento, "tagliarlo" e farlo puntare all'elemento restituito da una chiamata successiva della funzione.
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg Ultima modifica di Albi89 : 09-04-2008 alle 20:52. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:09.