Table of Contents
Listan toimintojen monimutkaisuuden ymmärtäminen on olennaista niiden tehokkuuden arvioimiseksi. Tässä artiklassa esitetään selkeä ja vaiheittainen analyysi yhteisistä linkitetyistä luettelotoiminnoista ja niiden laskentakustannuksista.
Perustoiminnot ja niiden monimutkaisuus
Linkkilistan toiminnot sisältävät syöttämisen, poistamisen ja matkan. Kunkin operaation aikamonimutkaisuus riippuu siitä, onko lista erikseen vai kaksin verroin linkitetty ja onko operaation sijainti tiedossa.
Lisäykset
Solmupisteen lisääminen linkitetyn luettelon alkuun kestää jatkuvasti O(1), koska siihen liittyy muutaman osoitinten päivittäminen. Kuitenkin tiettyyn asentoon sijoittaminen edellyttää luettelon siirtämistä kyseiseen asentoon, joka kestää lineaarisen ajan O(n).
Poissulkeminen
Ensimmäisen solmupisteen poistaminen on ]-toiminto, koska siihen liittyy vain osoitinpäivityksiä. Solmupisteen poistaminen tietyssä asennossa edellyttää kyseisen solmun kulkua, mikä johtaa ]O(n)-kompleksisuuteen.
Traversal ja haku
Linkkiluettelon kiertäminen tietyn elementtien löytämiseksi tai niiden saavuttamiseksi edellyttää käymistä kussakin solmussa kerran, mikä johtaa lineaariseen aikakompleksiin O(n).
- Pään lisäys: O(1)
- Asennus kohdassa: O(n)
- Pään poistaminen: O(1)
- Poisto paikasta: O(n)
- Traversaali/haku: [O(n)