HTML Tutorials |
|
XML Tutorials |
|
Browser Scripting |
|
Server Scripting |
|
.NET (dotnet) |
|
Multimedia |
|
Web Building |
|
Java Tutorials |
|
Programming Langauges |
|
Soft Skills |
|
Database Tutorials |
|
Operating System |
|
Software Testing |
|
SAP Module |
|
Networking Programming |
|
Microsoft Office |
|
Accounting |
|
|
Queues: La vista astratta |
|
|
Queues
|
La coda � la struttura di dati lineare finale che volont� abbiamo esaminato. Come la pila, la coda � inoltre un tipo di lista limitata. Invece di limitazione dei tutti i funzionamenti a soltanto un'estremit� della lista come pila, la coda permette che gli articoli siano aggiunti all'un'estremit� della lista e siano rimossi all'altra estremit� della lista. La figura qui sotto dovrebbe dargli una buona idea della vista astratta della coda.
Questo le limitazioni disposte su una coda inducono la struttura ad essere �Primo-In, la Prima-Fuori� o la struttura di FIFO. Questa idea � simile alle linee di cliente alla a in tutto il deposito di pagamento della fattura (per esempio coda di pagamento della fattura del telefono). Quando il cliente A � aspettare per verificare, lui o entra nella coda (estremit�) della linea attendente. Quando i clienti preceding hanno pagato, quindi il cliente A paga e rimuove dalla testa della linea. La linea di fattura-pagamento � realmente una coda che fa rispettare �in primo luogo venuto, una politica di primo serv�.
Rappresenteremo questi due funzionamenti con la seguente notazione:
|
EnqueueItem(Queue, Item)
Item DequeueItem(Queue)
|
Questi due funzionamenti sono molto simili a quello dei funzionamenti che abbiamo imparato per la struttura di dati della pila. Anche se i nomi sono differenti, la logica di usando i parametri � la stessa. Il funzionamento di EnqueueItem (entrare nell'articolo della coda) prende il parametro dell'articolo e lo aggiunge alla coda (estremit�) della coda. Il funzionamento di DequeueItem (articolo della coda di cancellazione) rimuove l'articolo capo della coda e restituisce questo come articolo. Notare che rappresentiamo l'articolo restituito con una parola chiave situata alla sinistra del nome di funzionamento. Questi due funzionamenti fanno parte della vista astratta di una coda. Senza riguardo a come scegliamo effettuare la nostra coda sul calcolatore, la coda deve sostenere questi due funzionamenti.
|
La vista di esecuzione |
Quando abbiamo osservato le strutture ordinate di dati della pila e della lista, abbiamo visto due sensi differenti effettuare loro ogni. Anche se le esecuzioni erano differenti, la struttura di dati era ancora la stessa dal punto di vista astratto per sia la pila che la lista richiesta. Potremmo uso tranquillo gli stessi funzionamenti sulle strutture di dati senza riguardo alle loro esecuzioni. Con la coda, � inoltre possibile avere varie esecuzioni che sostengono i funzionamenti EnqueueItem e DequeueItem. La distinzione fra la rappresentazione logica della coda e la rappresentazione fisica della coda. Ricordar di che la rappresentazione logica � il senso che pensiamo ai dati di senso che sono memorizzati nel calcolatore. La rappresentazione fisica � il senso che i dati di senso realmente sono organizzati nelle cellule di memoria (memoria di calcolatore).
Ora consideriamo come i funzionamenti di DequeueItem e di EnqueueItem potrebbero essere effettuati nella coda. Per immagazzinare le lettere nella coda, potremmo avanzare l'indicatore della coda da una posizione ed aggiungere la nuova lettera nella coda. Per dequeue le lettere (di cancellazione), potremmo rimuovere fuori la lettera capa ed aumentare l'indicatore capo da una posizione. Mentre questo metodo sembra molto diretto, ha un problema serio. Poich� gli articoli sono aggiunti e rimossi, la nostra coda marcer� diritto con l'intera memoria del calcolatore. Non abbiamo limitato il formato della nostra coda ad una quantit� fissa di formato.
Forse potremmo limitare il formato della coda non permettendo che l'indicatore della coda avanzi oltre la determinata posizione di memoria. Questa esecuzione arresterebbe la coda dall'attraversamento della memoria intera, ma permetterebbe soltanto che noi riempiamo la coda una volta. Una volta che gli indicatori della coda e della testa raggiungessero la posizione di arresto, la nostra coda pi� non funzionerebbe il untill che cancellassimo alcuni dati da esso.
|
|
|
Keywords:
queues in c, queues in c++, java queues, c arrays, matrix in c, graph in c, sort in c, c example, c method, program in c, list in c, simple c, c implementation
|
|
HTML Quizes |
|
XML Quizes |
|
Browser Scripting Quizes |
|
Server Scripting Quizes |
|
.NET (dotnet) Quizes |
|
Multimedia Quizes |
|
Web Building Quizes |
|
Java Quizes |
|
Programming Langauges Quizes |
|
Soft Skills Quizes |
|
Database Quizes |
|
Operating System Quizes |
|
Software Testing Quizes |
|
SAP Module Quizes |
|
Networking Programming Quizes |
|
Microsoft Office Quizes |
|
Accounting Quizes |
|
|