Quote:
Originariamente inviato da cionci
Nell'implementazione classica non c'č... Il remove dell'implementazione classica taglia il primo nodo trovato con un dato valore...
Parti da questo:
Codice:
struct list {
int info;
list *next;
};
|
Codice:
#include <iostream>
#include <string>
#include <cmath>
#include <cstdio>
using namespace std;
// Liste bilaterale
typedef struct SList
{
int irq;
SList *next;
SList *prev;
}Lista;
int main( )
{
Lista prima, seconda, terza, quarta, quinta;
/* definisco */
prima.irq = 9;
seconda.irq = 8;
terza.irq = 7;
quarta.irq = 6;
quinta.irq = 5;
/* concateno creando la lista*/
prima.next = &seconda;
prima.prev = NULL;
// ----------
seconda.next = &terza;
seconda.prev = &prima;
// ----------
terza.next = &quarta;
terza.prev = &seconda;
// -----------
quarta.next = &quinta;
quarta.prev = &terza;
// -----------
quinta.next = NULL; // ultimo anello nullo, cosi la lista e finita
quinta.prev = &quarta;
Lista *primoel = &prima;
// stampa
Lista *cercare = primoel;
const unsigned indicenodo = 4;
for( unsigned i=0; i < indicenodo; i++ )
{
cercare = cercare->next;
}
cout << cercare->irq << "\n";
system( "PAUSE" );
return 0;
}