C ++ pentru începători. Eliminarea unui element dintr-o listă dublată
Continuăm să ne familiarizăm cu lista dublu conectată. Pentru a nu agora articolul introducând crearea unei liste dublu legate, am făcut acest material ca fiind separat, dar este totul dintr-un "terci". Privim și învățăm cum să eliminăm un element dintr-o listă dublată.
Funcția de ștergere este puțin dificil de înțeles, deoarece, în funcție de poziția elementului, poate exista o scriere diferită a codului.
-
Să ne uităm la posibilele opțiuni
Aici pentru fiecare caz este necesar să scrieți o mică bucată de cod. Din acest motiv, funcția de ștergere a listei dublu-conectate nu este cea mai mică.
Pentru a simplifica puțin sarcina, trebuie să introduceți un contor variabil care să numere numărul de elemente din listă. (Deci, codul va fi mai mic).
Deci, cred că, odată cu crearea listei, sunteți deja familiar și capabil să-l scrieți chiar și cu ochii închiși. De aceea, vă îndrept atenția direct asupra funcției de eliminare a unui element dintr-o listă dublu legată.
Codul C ++. Eliminați dintr-o listă dublată
Puteți face altfel, dar principiul va fi același peste tot. Am ales să execut codul în funcție de situație și să ieșesc imediat din funcția de ștergere (Ei bine, de ce verificați ce nu mai este nevoie). Principalul lucru nu este să uităm că, dacă există un contor de elemente (și îl am aici), atunci când îl adăugăm, este necesar să se mărească, cu eliminarea să se reducă.
În mod deliberat, nu scriu codul, care denotă erori probabile (de exemplu, dacă elementul șters este un număr care este mai mare decât numerele din listă). Deci vă puteți concentra pe dreapta. DAR, asigurați-vă că ați adăugat această piesă. Acest lucru este foarte important. (ceea ce înseamnă o piesă care exclude introducerea incorectă a datelor pentru ștergere).
Schematic nu sa dovedit prea clar, dar poate aduce claritate.
Un nod poate fi șters numai dacă nu se rupe comunicarea cu alte elemente.
Sper că acest material v-a ajutat ceva și a fost capabil să vă învețe ceva.
Facebook 0 Twitter 0 Google+ 0 LinkedIn 0 Pinterest 0 Reddit 0
span> MyList span> * span> temp span> = span> cap span> . span> * span> Temp2 span> ; span> // temp-elementul de eliminat, temp2 este necesar să nu pierdem datele
span> // cout<
// aici trebuie să verificați ce element ar trebui eliminat, nu?
span> Temp2 span> -> span> Anterior span> -> span> următor span> = span> temp span> -> span> următor span> ; span> // Scrieți datele următor după ce elementul care este șters este următorul element din elementul șters
span> Temp2 span> -> span> următor span> -> span> Anterior span> = span> temp span> -> span> Anterior span> ; span> // și cea anterioară pentru următoarea este cea precedentă pentru textul șters
span> count_ span> -- span> ; span> // Asigurați-vă că reduceți numărul de articole din listă.