Array circolare

di il
5 risposte

Array circolare

Salve a tutti, qualcuno potrebbe spiegarmi brevemente (se è possibile) cos'è e come funziona un array circolare? ho gia cercato su internet e su vari testi che ho acquistato ma non trovo nulla

5 Risposte

  • Re: Array circolare

    E' banale:
    supponi di avere un array di 10 elementi
    l'indice i va da 0 a 9

    MA

    se invece di usare solo l'indice, usi la seguente formuletta: i%10 (resto della divisione per 10),
    il tuo indice puo' andare da -infinito a +infinito, ma tu selezionersi SOLO gli elementi compresi ta 0 e 9. Cioe' selezionersi gli elementi 0,1,2,...,8,9,0,1,2,..
  • Re: Array circolare

    Tutto qua? chiedendo ad alcuni colleghi sono arrivato a scrivere questa bozza di codice:
    
    class Array{
        public:
            int n, dim, *vett, head, tail;
            Array(int di);
            void Add(int x);
            void Del();
    };
    Array :: Array(int di){
        n=0;
        dim=di;
        vett=new int[dim];
        head=-1;
        tail=0;
    }
    void Array :: Add(int x){
        if(n==dim){
            cout<<"array pieno"<<endl; return;}
        else{
            vett[tail]=x;
            if(head==-1)
                head=tail;
            tail=(tail+1)%dim;
            n++;
        }
    }
    void Array :: Del(){
        if(n==0){
            cout<<"array vuoto"<<endl; return;}
        else{
            head=(head+1)%dim;
    //        tail=(tail-1)%dim;
            n--;
        }
    }
    
    quello che però non mi convince è che se io dovessi eliminare un elemento che non è ne la testa ne la coda del vettore circolare, come mi gestisco con gli indici? Dovrei shiftare tutto a sinistra(o a destra) di una posizione?
  • Re: Array circolare

    Sì, è tutto qua.
    Cambia colleghi
  • Re: Array circolare

    Fin che parli array circolari, si.

    Se intendevi 'liste circolari' era TUTTA un'altra storia.

    Ma sta a te usare i termini giusti, e STUDIARE per imparare ad usarli
  • Re: Array circolare

    Nono mi riferivo agli array circolari
Devi accedere o registrarti per scrivere nel forum
5 risposte