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
|