Coda

di il
10 risposte

Coda

Salve come posso scrivere i metodi get,put e lo shift circolare di unacoda in java(se avete codice e meglio)?grazie

10 Risposte

  • Re: Coda

    Perché non provi? Magari ce li mostri e se ne parla ...
  • Re: Coda

    groove ha scritto:


    Salve come posso scrivere i metodi get,put e lo shift circolare di unacoda in java?
    Devi anche stabilire e precisare come è fatta la struttura dati della coda: lista linkata? array?
  • Re: Coda

    Ok ora provo.Semplicemnte come array devo fare i metodi per la put, get e shift(che non so proprio).Ora provo e vi dico
  • Re: Coda

    Get
    public int get(){
    n--;
    int n =coda[coda+1];
    return n;
    }
    ------------------------
    public int Put{
    coda[testa]=n;
    if(coda e piena(come scrivo){
    ----------
    else
    n--
    }
    return n;
    }
  • Re: Coda

    groove ha scritto:


    Get
    public int get(){
    n--;
    int n =coda[coda+1];
    return n;
    }
    ------------------------
    public int Put{
    coda[testa]=n;
    if(coda e piena(come scrivo){
    ----------
    else
    n--
    }
    return n;
    }
    Questo, oltre che scritto male/abbozzato comunque non mi pare affatto sufficiente. Se la coda è basata su un array di lunghezza prefissata, una possibile soluzione tipica è tenere 2 indici (uno per la "testa" e l'altro per la "coda"). E devono funzionare a "ricircolo" ovvero arrivati al fondo dell'array devono poter tornare all'inizio.
    In sostanza ... serve più "logica" di quella che stai pensando.
  • Re: Coda

    Crossposting in

    http://www.ioprogrammo.it/index.php?topic=26833.msg97601;topicseen#msg97601

    proprio mentre qui ti stanno aiutando ...
  • Re: Coda

    Scusatemi ma proprio non sto capendo,ho scritto su altri forum per capire se avevano un esempio di codice che mi potesse aiutare.Scusate
  • Re: Coda

    Se vuoi capire, leggi i regolamenti dei forum.
  • Re: Coda

    Nono lo so che non ho rispettato il regolamento è solo che non sto capendo in quanto sto avendo problema a scrivere il codice in se anhe se ho capito
    come funzionano.comunque me ne rendo conto del mio comportamento irrispettoso se dovete togliermi fatelo non vorrei che pensaste fossi uno
    che non ascolta gli altri.
  • Re: Coda

    groove ha scritto:


    in quanto sto avendo problema a scrivere il codice in se anhe se ho capito
    Prima del codice, dovresti avere ben chiaro come gestire l'array. In particolare riguardo il fatto di gestire gli indici sull'array in maniera "circolare".

    Vediamo con qualche schemino con un array di 4 elementi.
    Nota, devi tenere 3 informazioni (oltre all'array, ovviamente):
    - l'indice di "testa" (indicato con T), che indica l'indice a cui c'è il prossimo elemento che puoi estrarre.
    - l'indice di "coda" (indicato con C), che indica l'indice in cui puoi inserire il prossimo elemento.
    - una "dimensione", che indica quanti elementi "logici" ci sono.

    Scenario iniziale, coda vuota:
      0              3
    +----+----+----+----+
    |    |    |    |    |
    +----+----+----+----+
      ^
      |
      TC
    dimensione è 0, quindi non puoi estrarre nulla.

    Inserisci un valore es. 10 e diventa:
      0              3
    +----+----+----+----+
    | 10 |    |    |    |
    +----+----+----+----+
      ^    ^
      |    |
      T    C
    Potresti estrarre 10 dall'indice testa e puoi inserire altro all'indice coda.

    Inserisci es. 11 e 12 e diventa:
      0              3
    +----+----+----+----+
    | 10 | 11 | 12 |    |
    +----+----+----+----+
      ^              ^
      |              |
      T              C
    Poi attenzione, aggiungi ancora es. 13 e diventa:
      0              3
    +----+----+----+----+
    | 10 | 11 | 12 | 13 |
    +----+----+----+----+
      ^
      |
      TC
    la coda è passata dall'indice 3 all'indice 0, ha "fatto il giro".
    Comunque dimensione è 4 (la lunghezza fisica dell'array) quindi ora non puoi inserire nulla.

    Poi decidi di estrarre il 10 e diventa:
      0              3
    +----+----+----+----+
    |    | 11 | 12 | 13 |
    +----+----+----+----+
      ^    ^
      |    |
      C    T
    dimensione è 3, quindi puoi inserire un elemento in coda.

    Ecc....
Devi accedere o registrarti per scrivere nel forum
10 risposte