|
|||||||
|
|
|
![]() |
|
|
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: 2783
|
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 21:52. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:05.



















