si mi pare di aver capito,
ma la mia struttura dati all'interno del programma è un array di puntatori a grafo....
per farti capire, ti faccio un esempio di inserimento nella mia coda:
codice:
int i;
coda_p *Q=new coda_p;
for(i=0;i<m;i++)
Q->push(G[i],m-i);
Q->stampa();
il push sembra funzionare, ora non riesco ad eliminare il nodo di testa tramite il pop....mi dice che :
error C2106: '=' : left operand must be l-value
ecco il metodo responsabile di tutto ciò:
codice:
void pop()
{
this=this->next;
}
se può essere d'aiuto ecco la mia classe coda, this contiene la testa della coda :
codice:
class coda_p
{
private:
int key;
coda_p *next;
grafo *elem;
public:
coda_p()
{
next=NULL;
elem=NULL;
key=INT_MAX;
}
void push(grafo *E,int chiave)
{
coda_p *insert=new coda_p;
insert->key=chiave;
insert->elem=E;
coda_p *app=this;//this rappresenta la testa della coda
bool trovato=false;
while(app->next!=NULL && trovato==false)
{
if(app->next->key>chiave)
{
insert->next=app->next;
app->next=insert;
trovato=true;
}
app=app->next;
}
if(app->next==NULL)
app->next=insert;
}
void pop()
{
this=this->next;
}
void stampa ()
{
coda_p *p=this->next;
while(p!=NULL )
{
cout<<p->key<<" "<<endl;
p=p->next;
}
}
};