Monikko (tietorakenne)

Monikko (eng. Tuple) on järjestetty vakio tietorakenne, joka pitää sisältää mielivaltaisen määrän data-elementtejä. Tämän voi ajatella valmiina listana objekteja; monikko on itse lista mutta sen sisältämät objektit ovat itsenäisiä ja koska lista on valmis, sitä ei ole mielekästä enää jatkaa.

Yleisiä ominaisuuksia 
Monikko vastaa pitkälti yksiulotteista taulukkoa, mutta sen rakennetta ei voi luonnin jälkeen enää muuttaa. Tämä esto on kuitenkin vain "matala", sillä arvoja itse voi käsitellä edelleen vapaasti. Monikon jokainen elementti saa olla eri datatyyppiä, ja monikon määritelmään tarvitaan mahdollisuus tähän. (muuten kyseessä olisi vakioksi merkitty taulukko tai lista.) Koska monikko on listattu, sen sisältäessä dataa voidaan löytää ensimmäinen, viimeinen ja mahdollisesti myös "väli" -elementit. Elementtien järjestys ei koskaan muutu.

Käyttö 
Monikko on turvallinen yleiskapseli datalle. Koska se on vakio, sitä voidaan käyttää kirjoitussuojattuna listauksena, mutta toisaalta myös se on vakiona sallittu arvo hajautustaulukkoon.

Monikkoja eri kielissä 

 C#
using System;
using System.Collections.Generic; // vaaditaan datatyypin käyttöön

namespace esimerkki {
    public class ohjelma {
        public static void Main(string[] args){
            // tuple sisältää maksimissaan 8 arvoa, joiden datatyyppi pitää määritellä
            Tuple<int,int,int> monikko 1= new Tuple<string,int,bool>("a",1,True);
            // on mahdollista luoda dynaamisesti oikea, vahvasti tyypitelty monikko
            var monikko = Tuple.Create("alkio", 2, True);
            // sanakirja, jossa jokainen avain on 2D-koordinaatti-Monikko, vastaten yleistä objektia
            Dict<Tuple<float,float>, object> koordinaatit = new Dict<Tuple<float,float>, object>();
        }
    }
}

 Python
# monikko on oletusarvo listatulle sekvenssille
monikko1 = 1,2,3
# yleinen tapa on merkitä sekvenssi tavallisilla sulkeilla, koska python visualisoi monikot niiden kanssa.
monikko2 = ("a","b","c")
# tuple on monikon datatyyppi. sellaisenaan sillä voi esimerkiksi muuttaa listan monikoksi
monikko3 = tuple([1,2,3]) # -> (1,2,3)
# esimerkki yksiarvoisesta sekä tyhjästä monikosta
monikko4 = ( (1,), () )
# monikkoja voi myös inutuitiivisesti yhdistää yhteenlaskuoperaattorilla +, ja monistaa tulo-operaattorilla *.
# ota huomioon, että luodut monikot ovat uusia, sillä vanhojahan ei pysty muokkaamaan.
monikko = (1,2,3) + (1,2,3) * 2 # -> (1,2,3,1,2,3,1,2,3)

Tietojenkäsittelyteoria
Tietorakenteet