Elikkäs mulla on tehtävänä tuollainen kortisto sovellus koulutehtävänä. Kortiston pitää olla struct tyyppinen , joo tein tietuetaulukon. Mutta itellä ongelmana miten hoitaa ominaisuudet. Lisää,poista,muokkaus,listaus,haku. Mites nuo ominaisuudet sais parhaimmin toteutettua?
Lisäämällä, poistamalla, muokkaamalla, listaamalla ja hakemalla. Oliko näissä jokin erityinen ongelma?
Kerroit, että käytät taulukkoa. Kannattaa säilyttää muuttujassa käytettyjen korttien määrä; taulukon ensimmäiset N korttia ovat käytössä ja loput vapaita. Listaus ja haku toimivat, kun käyt kaikki N korttia for-silmukalla läpi. Muokkauksessa paras vaihtoehto on funktio, jolle annetaan osoitin muokattavaan korttiin (ensin tietysti kysytään, mitä muokataan). Lisäämisessä pääsee helpolla, kun vain valitsee taulukosta vapaan kohdan ja "muokkaa" sitä. Poistamisessa joko siirretään viimeinen kortti poistetun paikalle (ABCD - B = ADC) tai siirretään kaikki myöhemmät kortit taaksepäin. Lisäys ja poisto tietenkin vaikuttavat laskuriin N, joka kertoo käytettyjen korttien määrän.
Taulukolle hyvä vaihtoehto on linkitetty lista, jossa siis jokainen kortti sisältää osoittimen seuraavaan korttiin. Viimeisen kortin osoitin on tyhjä. Linkitetty lista on nopea silloinkin, kun lisäys- ja poisto-operaatio kohdistuu kortiston keskelle, koska muita kortteja ei tarvitse siirtää. Linkitetyn listan ideaa voi hyödyntää taulukossakin niin, että jokainen kortti sisältää seuraavan kortin indeksin; tällöin taulukon järjestämiseksi ei tarvitse siirrellä kortteja vaan vain päivittää indeksejä.
Joka tapauksessa kannattaa tehdä joka operaatiolle erillinen funktio.
Ei niissä sinäänsä ollut ongelmaa , mutta en tiennyt miten toteuttaa ne. Nyt tiedän, kun selvitit ton että taulukoilla ja pointtereilla kannattaa se tehä. Olen taas vähän viisaampi pitää kokeilla mitä saan aikaseksi. Kiitos tosta neuvosta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.