Poista kaikki peräkkäiset samat alkiot

Takaisin JHAVEPOP harjoituksiin

Ongelman kuvaus

Kirjoita C++-ohjelma, joka poistaa linkitetystä listasta, kaikki alkiot, joista seuraava alkiolla on sama info-kentän arvo. Toisin sanottuna ohjelmasi suorittamisen jälkeen listassa ei enää saa olla peräkkäin samansisältöisiä alkioita. (Samansisältöisistä alkioista, jotka eivät ole peräkkäi, ei tarvitse välittää.) Jäljelle jäävien alkioiden pitää olla listassa samassa järjestyksessä kuin missä ne olivat alunperin.

Kuten alla esitellyistä testitapauksista huomaat, voit olettaa, että osoittimet head and tail osoittavat listan ensimmäiseen ja viimeiseen alkioon, tai ovat nollaosoittimia (NULL), jos linkitetty lista on tyhjä. Näiden ehtojen pitää pitää paikkaansa vielä ohjelmakoodisi suorituksen jälkeenkin. Huomaa, että harjoituksessa on määriteltynä myös kaksi ylimääräistä osoitinta p1 ja p2, joita voit käyttää apuna. Tässä harjoituksessa ei ole tarkoitus määritellä muita osoittimia.

Varmista, että kirjoittamasi ohjelmakoodi toimii oikein kaikissa erilaisissa tapauksissa, oli linkitetyn listan tilanne mikä tahansa. Seuraavat 8 testitapausta helpottavat ohjelmasi testaamista. Kirjoita ohjelmakoodisi valmiiksi ja kopioi se sitten vuorotellen jokaiseen seuraavista JHAVEPOP testeistä kokeillaksesi sen toimintaa eri tilanteissa.


Testitapaus #1

Kuvaus: Lista on tyhjä.

Alkutilanne:

Lopputilanne:

Valmiina testaamaan?

Testitapaus #2

Kuvaus: Listan alussa on kaksi peräkkäistä samaa alkioita.

Alkutilanne:

Lopputilanne:

Valmiina testaamaan?

Testitapaus #3

Kuvaus: Listan lopussa on kaksi peräkkäistä samaa alkioita.

Alkutilanne:

Lopputilanne:

Valmiina testaamaan?

Testitapaus #4

Kuvaus: Listassa ei ole peräkkäisiä samoja alkioita.

Alkutilanne:

Lopputilanne:

Valmiina testaamaan?

Testitapaus #5

Kuvaus: Listan alussa on useampia peräkkäisiä samoja alkioita.

Alkutilanne:

Lopputilanne:

Valmiina testaamaan?

Testitapaus #6

Kuvaus: Listan lopussa on useampia peräkkäisiä samoja alkioita.

Alkutilanne:

Lopputilanne:

Valmiina testaamaan?

Testitapaus #7

Kuvaus: Lista, jossa on satunnaisissa kohdissa peräkkäisiä samoja alkioita.

Alkutilanne:

Lopputilanne:

Valmiina testaamaan?

Testitapaus #8

Kuvaus: Lista, jossa on satunnaisissa kohdissa peräkkäisiä samoja alkioita, jotka ovat vielä keskenäänkin samoja.

Alkutilanne:

Lopputilanne:

Valmiina testaamaan?

Takaisin JHAVEPOP harjoituksiin