Perdu entre les pointeurs
Bonjour,
Je me suis perdu entre les pointeurs et j'arrive plus à savoir comment faire pour supprimer un élément ajouté à ma liste chaînée
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
Vehicule *l=NULL;
Vehicule *p=NULL;
Vehicule *q=NULL;
GestionMenu m;
int id;
int idt;
while(1)
{
m.MenuPrinc();
switch(m.typepr)
{
case 1: system("cls"); m.menu_type();
switch(m.typety)
{
case 1: system("cls");p=new Bateau;
p->Saisie();
p->Affiche();
p->lien=l;l=p;
getch();
break;
case 2: p=new Helicoptere;
p->Saisie();
p->Affiche();
p->lien=l;l=p;
getch();
break;
case 3: p=new Vehicule_Roulant;
p->Saisie();
p->Affiche();
p->lien=l;l=p;
getch();
break;
case 4: p=new Hovercraft;
p->Saisie();
p->Affiche();
p->lien=l;l=p;
getch();
break;
case 5: if(p!=NULL)
{
delete l;delete p; delete q;
}
return 0;
default: cout<<"\nchoix invalide\n";
break;
}
getch();
break;
case 2: cout<<"\nVeuillez saisir l'identifiant du vehicule a supprimer:\n";cin>>idt;
/*q=l; if (q==NULL) cout<<"liste vide";
else
{while ((q=!NULL)&(q->GetIdentifiant()!=id))
{ q=q->lien;}
}*/
case 3:cout<<"pas encore";getch();
break;//pas encore faite
case 4:cout<<"pas encore";getch();
break;//pas encore faite
case 5:cout<<"\nVeuillez saisir l'identifiant:\n";cin>>id;
cout<<"\nLe vehicule recherche:\n";
q=l;
if(q==NULL) cout<<"liste vide";
else
{ while ((q!=NULL)&(q->GetIdentifiant()!=id))
{
q=q->lien;
}
q->Affiche();
}
getch();
break;
case 6:cout<<"pas encore";getch();
break;//pas encore faite
case 7:cout<<"pas encore";getch();
break;//pas encore faite
case 8:cout<<"pas encore";getch();
break;//pas encore faite
case 9: m.menu_affich();
switch(m.typeaf)
{
case 1:
cout<<"affichage de tous les vehicules\n";
q=l;
if(q==NULL) cout<<"liste vide";
else
{ while (q!=NULL)
{
q->Affiche();
cout<<"\n--------------------------------------------\n";
q=q->lien;
}
}
getch();
break;
case 2:
cout<<"affichage de tous les bateaux\n";
/*q=l;
if(q==NULL) cout<<"liste vide";
else
{ while ((q!=NULL)&(typeid(q)!=typeid(Bateau)))
{
q=q->lien;
}
q->affichage();
}
getch();
break;
*/
case 3:cout<<"pas encore";getch();
break;//pas encore faite
case 4:cout<<"pas encore";getch();
break;//pas encore faite
case 5:cout<<"pas encore";getch();
break;//pas encore faite
}
case 10:m.menu_stat();
cout<<"pas encore";getch();
break;
case 11:
if(p!=NULL)
{
delete l;delete p; delete q;
}
return 0;
default: cout<<"\nchoix invalide\n";
break;
}
p=NULL;
}
} |