Nwlapcug.com


Come implementare la classe di coda di priorità utilizzando matrice

Come implementare la classe di coda di priorità utilizzando matrice


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

Istruzioni

1

Scegliere il tipo di dati che tiene la coda di priorità. Se questa è la prima volta che scrivo una coda di priorità, scegliere qualcosa di semplice, ad esempio un integer.

2

Creare una matrice per servire come la coda. Se è il tipo di dati integer, e si desidera bloccare 10 elementi, la matrice verrà creata utilizzando codice simile al seguente:

int [] arr = new int [10];

Tenete a mente che 0 è il primo indice di una matrice. Per accedere il primo indice di arr, si riferiscono a arr [0], e arr [9] dovrebbe accedere l'ultimo indice di arr. In questo caso, arr [10] causa un errore.

3

Determinare la funzione di ordinamento. Servirà più tardi per spingere gli elementi nell'ordine corretto. Questa funzione prende due ingressi, quindi li confronta. Se l'ingresso ha un valore superiore, la funzione restituisce 1; Se entrambi gli ingressi hanno lo stesso valore, restituisce 0; e se il primo input ha un valore inferiore, 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 inferiore. L'ordinamento dal valore numerico, il codice sarà simile questo:

Se (primo > seconda) return 1;

Se (primo = = secondo) return 0;

Se (primo < seconda) return -1;

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

4

Avviare la funzione push. Questo prende un input, l'elemento a spingere sulla coda e restituisce nulla. In Java, se è il tipo di dati integer, il codice sarà simile questo:

public void push (int a)

Il codice sarà simile a molti altri linguaggi di programmazione, tra cui C e C++. "Void" significa che questa funzione visualizzerà niente.

5

Creare una matrice delle stesse dimensioni della matrice che si utilizza per la coda. Se la matrice corrente può tenere 10 interi, si creerà una matrice come questo:

int [] secondArray = new int [10];

Questa seconda matrice diverrà in seguito la coda. Se l'ultima voce nella tua matrice è completo, questo significa che avete usato ogni voce nella matrice; è invece necessario creare una matrice che è una voce più grande.

6

Confrontare l'input a ogni elemento nell'array, a partire dal primo, utilizzando la funzione di ordinamento. Assicurati sempre di spingere il primo elemento che si posiziona nella funzione di ordinamento in ingresso. Per confrontare l'input di push e il primo elemento da arr, il codice sarà simile a questo:

ordinamento (in, arr[0]);

Qui, "in" è il nome dato alla variabile di input dal passaggio 4.

Se questo restituisce -1, mettere l'input di spingere nella seconda matrice:

secondArray [0] = a;

In caso contrario, copiare l'elemento dalla matrice prima nella seconda matrice:

secondArray [0] = arr [0];

Quindi confrontare l'input di spingere all'elemento successivo della prima matrice:

ordinamento (in, arr[1]);

Continuare fino a quando l'input di push viene inserito nella matrice seconda o fino a quando non ci sono più elementi della prima matrice. In quest'ultimo caso, posizionare l'input di spingere come l'elemento successivo nella matrice secondo.

7

Copiare il resto degli elementi dalla prima matrice nella matrice seconda. Ora che l'input di push è stato posizionato nella seconda matrice, non è necessario per la funzione di ordinamento. Da questo momento in poi, utilizzare la seconda matrice anziché il primo; la prima matrice è ora obsoleto. Con questo, la funzione push è completa.

8

Scrivere la funzione di schiocco. Questo richiede nessun input, ma che genera un elemento dalla coda. Se il tipo di dati integer, il codice sarà simile a questo:

Public Function pop)

La seconda parola, "int", significa che questa funzione visualizzerà un valore integer.

9

Creare una seconda matrice della stessa dimensione come la matrice corrente. Quindi, copiare il secondo elemento dalla matrice prima nella prima voce nella matrice di secondo, il terzo elemento nella seconda voce della matrice secondo 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 oggetti, il codice sarà simile a questo:

secondArray [0] = arr [1];

secondArray [1] = arr [2];

secondArray [2] = arr [3];

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

10

Restituire il primo elemento della prima matrice. Il codice sarà simile a questo:

ritorno arr [0];

Come con la funzione di push, la seconda matrice è ora la coda. La funzione di schiocco è ora completa.