Come implementare Classe di priorità coda utilizzando Array

August 23

Come implementare Classe di priorità coda utilizzando Array


A memorizza i dati di coda in sequenza e contiene due funzioni: push e pop. Push inserisce un elemento alla fine della coda; pop rimuove la voce nella parte anteriore e lo restituisce. Una coda di priorità si comporta allo stesso modo, con una differenza: spinta aggiunge elementi alla coda in un certo ordine. Gli array non sono l'ideale per una coda di priorità; mancano di flessibilità, rendendo difficile per ordinare coda. Tuttavia, essi sono utili per l'apprendimento del concetto.

istruzione

1 Scegliere il tipo di dati coda prioritaria può contenere. Se questa è la prima volta che scrivo una coda di priorità, scegliere qualcosa di semplice, come un intero.

2 Creare una matrice per servire come la coda. Se il tipo di dati è intero, e si desidera tenere 10 elementi, l'array verrà creata usando codice come questo:

int [] arr = new int [10];

Tenete a mente che 0 è il primo indice di qualsiasi array. Per accedere al primo indice di arr, si dovrebbe fare riferimento alla arr [0], e arr [9] potrebbe accedere l'ultimo indice di arr. In questo caso, arr [10] causa un errore.

3 Determinare la funzione di ordinamento. Sarà utilizzato in seguito per spingere gli elementi nell'ordine corretto. Questa funzione prende due ingressi, poi li confronta. Se il primo ingresso ha un valore più alto, la funzione restituisce 1; se entrambi gli ingressi hanno lo stesso valore, restituisce 0; e se il primo ingresso ha un valore più basso, restituisce -1. Se questa è la prima volta che scrivo una funzione di ordinamento, e il tipo di dati di scelta è intero, si dovrebbe iniziare con ordine numerico, in cui i numeri più bassi hanno un valore più basso. L'ordinamento per valore numerico, il codice sarà simile a questa:

se (prima> seconda) return 1;

se (prima == secondo) return 0;

se (prima <secondo) restituire -1;

Questo funziona anche per altri tipi di numero di dati, come le doppie e carri allegorici. Se si utilizza stringhe, è possibile ordinare in ordine alfabetico.

4 Avviare la funzione push. Questo richiede un input, la voce di spingere sulla coda, ed emette nulla. In Java, se il tipo di dati è intero, il codice sarà simile a questa:

spinta public void (int a)

Il vostro codice sarà simile nella maggior parte dei linguaggi di programmazione, tra cui C e C ++. "Void" significa che questa funzione di uscita volontà nulla.

5 Creare una matrice delle stesse dimensioni come la matrice che si utilizza per la coda. Se l'array corrente può contenere 10 numeri interi, si creerà un array come questo:

int [] secondArray = new int [10];

Questa seconda serie sarà poi diventato la coda. Se l'ultima voce nella propria matrice è pieno, questo significa che si è utilizzato ogni voce della matrice; si dovrebbe invece creare un array che è una voce più grande.

6 Confrontare l'ingresso di ogni elemento dell'array, a partire dal primo, utilizzando la funzione di ordinamento. Sempre fare ingresso di spingere il primo elemento che si inserisce nella funzione di ordinamento. Per confrontare l'ingresso di spinta e il primo elemento da ARR, il codice sarà simile a questa:

sort (a, arr [0]);

Qui, "in" è il nome dato alla variabile di ingresso dal punto 4.

Se questo restituisce -1, mettere ingresso di spinta nella seconda matrice:

secondArray [0] = a;

In caso contrario, copiare l'elemento dal primo array nel secondo array:

secondArray [0] = arr [0];

Quindi confrontare ingresso di spinta per l'elemento successivo nella prima matrice:

sort (a, arr [1]);

Continuare con questo fino a quando si inserisce l'ingresso di spinta nella seconda matrice o fino a quando non ci sono più elementi nel primo array. In quest'ultimo caso, posizionare l'ingresso di spinta come l'elemento successivo nella seconda serie.

7 Copiare il resto degli elementi del primo array nel secondo array. Ora input che di spinta è stata posta nel secondo array, non avete bisogno per la funzione di ordinamento. D'ora in poi, utilizzare la seconda matrice piuttosto che il primo; il primo array è ormai superata. Con questo, la funzione di spinta è completa.

8 Scrivere la funzione pop. Questo richiede nessun ingresso, ma emette un elemento dalla coda. Se il tipo di dati intero è, il codice sarà simile a questa:

public int pop ()

La seconda parola, "int", significa che questa uscita funzione un intero.

9 Creare una seconda serie della stessa dimensione come l'array corrente. Quindi, copiare il secondo elemento dal primo array nella prima voce nella seconda matrice, il terzo elemento nella seconda voce del secondo array, e così via e così via, fino a quando non ci sono più voci. Non copiare il primo elemento della prima matrice. Se l'array contiene 4 elementi, il codice sarà simile a questa:

secondArray [0] = arr [1];

secondArray [1] = arr [2];

secondArray [2] = arr [3];

Ricordiamo che il primo indice di un array è 0. Questo significa che secondArray [0] è il primo elemento di secondArray, e arr [1] è la seconda voce di arr.

10 Restituisce il primo elemento dalla prima matrice. Il tuo codice sarà simile a questa:

tornare arr [0];

Come per la funzione push, la seconda serie è ora la tua coda. La funzione pop è ora completa.