Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-06-2013, 14:16   #1
Brizio92
Junior Member
 
Iscritto dal: Jun 2012
Messaggi: 12
[C++] ADT: Coda Statica Circolare

Salve a tutti, vorrei capire bene come realizzare questo tipo di ADT. Concettualmente, mi sembra di aver capito che la coda circolare, rispetto a quella lineare, è realizzata sempre con array, e una volta full permette di inserire i nuovi elementi dalla prima posizione (e neanche sono sicuro che questo sia corretto )

Ora, suppongo che la differenza stia nell'implementare diversamente append e pop, che sviluppo di solito in questo modo: (con c e t la coda e la testa)

append(int a) {
C[c]=a;
c=(c+1)%N;
nelem++;
}

pop(int a) {
a=C[t];
t=(t+1)%N;
nelem--;
}


(La coda la sviluppo come classe, quindi queste le uso come funzioni membro)

Cosa devo cambiare a queste funzioni affinché la coda abbia un comportamento circolare?
Mi sta bene anche qualche suggerimento, l'importante è capire come farla
Grazie in anticipo!
Brizio92 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2013, 16:50   #2
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
Aspetta... non è la coda ad essere circolare... è l'array con cui la implementi ad esserlo...
Una coda è una struttura astratta ben definita, la circolarità si riferisce al fatto che l'array con cui la implementi permette di inserire un elemento successivo a quello nell'ultimo indice ponendolo al primo indice (se la posizione è libera, altrimenti si estende l'array).

Detto questo, le funzioni potrebbero essere riscritte tenendo conto della circolarità:
Codice:
append(int a){
  if (c >= N)    //c sfora l'array => portalo al primo
    c = 0;
  if (c == t)    //coda piena se testa e coda coincidono
    estendi();  //estendi array 
  C[c++] = a;  //inserisci valore e post-incrementa c
  nelem++;
}

pop(){
  if (t >= N)  //t sfora l'array => portalo al primo
    t = 0;
  a = C[t++]; //recupera valore e post-incrementa t
  nelem++;
}
  
estendi(){
  //codice dove crei un array di dimensione maggiore (doppia) 
  //e copi dentro tutti gli elementi dalla testa alla coda
  //alla fine scarti l'array vecchio e a C assegni il nuovo array.
}
Ovviamente non ho testato il codice (non è nemmeno completo come noti).
L'idea è quella comunque.
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2013, 13:19   #3
Farro12
Junior Member
 
Iscritto dal: Jun 2013
Messaggi: 1
Ciao a tutti, il codice della coda circolare interesserebbe anche a me, potreste mostrarmi com'è implementata la funzione estendi() ?
Farro12 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Il Motorola Edge 70 non ha più se...
Alcuni Galaxy S26 utilizzeranno il chip ...
Amazon, ecco i super sconti del weekend:...
Scovare un bug di sicurezza sui disposit...
Offerta Amazon su NordVPN: proteggi 10 d...
ECOVACS DEEBOT X8 PRO OMNI in offerta su...
Scope elettriche Tineco in offerta su Am...
Offerta Amazon sui robot EUREKA J15 Ultr...
Chrome disattiverà automaticament...
Tornano tutti e 4 i colori disponibili p...
Super sconto su iPhone 16: Amazon abbass...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v