C pentru începători

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
  • Lista este goală (ce trebuie șters dacă nu există nimic)
  • Elementul specificat este mai mare decât numărul de elemente din listă
  • Există un singur element în listă
  • Există mai multe articole din listă și primul
  • Ultimul element din listă este șters
  • 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.

    C pentru începători

    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

    MyList * temp = cap . * Temp2 ; // temp-elementul de eliminat, temp2 este necesar să nu pierdem datele

    // cout<

    // aici trebuie să verificați ce element ar trebui eliminat, nu?

    Temp2 -> Anterior -> următor = temp -> următor ; // Scrieți datele următor după ce elementul care este șters este următorul element din elementul șters

    Temp2 -> următor -> Anterior = temp -> Anterior ; // și cea anterioară pentru următoarea este cea precedentă pentru textul șters

    count_ -- ; // Asigurați-vă că reduceți numărul de articole din listă.







    Articole similare

    Trimiteți-le prietenilor: