Una coda memorizza i dati in sequenza e contiene due funzioni : push e pop . Spingere posti un elemento alla fine della coda ; pop rimuove l'elemento nella parte anteriore e lo restituisce. Una coda di priorità comporta in modo simile , 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 la coda. Tuttavia, essi sono utili per imparare il concetto . Istruzioni
1
Scegliere il tipo di dati la tua coda di priorità detiene . Se questa è la prima volta che scrivo una coda di priorità , scegliere qualcosa di semplice , come ad esempio un numero intero .
2
Creare un array da utilizzare come coda. Se il tipo di dati è intero, e si desidera mantenere 10 elementi , l'array viene creato utilizzando il codice come questo:
int [ ] arr = new int [ 10 ] ;
Tieni presente che 0 è il primo indice di qualsiasi matrice . Per accedere al primo indice di arr , si dovrebbe fare riferimento a arr [ 0 ] , e arr [9 ] sarebbe accedere l'ultimo indice di arr . In questo caso , arr [ 10 ] causa un errore.
3
Determinare la funzione di ordinamento . Esso sarà utilizzato in seguito per spingere elementi nell'ordine corretto . Questa funzione prende due ingressi , poi li confronta . Se il primo ingresso ha un valore più elevato , la funzione restituisce 1; se entrambi gli ingressi hanno lo stesso valore , restituisce 0 , e se il primo ingresso ha un valore più basso , esso 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 un numero progressivo , in cui i numeri più bassi hanno un valore inferiore. Ordinamento per valore numerico , il codice sarà simile a questa :
if ( primo > secondo) return 1;
if ( primo == secondo) return 0;
if ( primo < secondo) ritorna -1 ;
Questo funziona anche per altri tipi di dati numerici , come doppie e carri allegorici . Se si utilizza stringhe , è possibile ordinare in ordine alfabetico .
4
Avviare la funzione di spinta . Questo richiede un ingresso , la voce di spingere sulla coda , che non visualizza nulla . In Java , se il tipo di dati è intero, il codice sarà simile a questa :
public void push ( int a ) per
Il codice sarà simile nella maggior parte degli altri linguaggi di programmazione , tra cui C e C + + . " Void " significa che questa funzione produrrà nulla .
5
Creare una matrice delle stesse dimensioni della 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 diventerà poi la coda . Se l'ultima voce nel tuo array è pieno , questo significa che avete usato ogni voce nella matrice , si dovrebbe invece creare una matrice che è una voce più grande
6
Confronta l'ingresso di ogni voce . nella vostra matrice, a partire con la prima , utilizzando la funzione di ordinamento . Sempre fare ingresso di spinta il primo elemento che si inserisce nella funzione di ordinamento . Per confrontare ingresso di spinta e il primo elemento da arr , il codice sarà simile a questa :
sort ( in , arr [ 0 ] ) ;
Qui , "in" è il nome dato alla la variabile di ingresso dal punto 4
Se restituisce -1 , mettere l'ingresso di spinta nella seconda matrice: .
secondArray [ 0 ] = a ;
Altrimenti , copiare il elemento dal primo array nel secondo array :
secondArray [ 0 ] = arr [ 0 ] ;
quindi confrontare ingresso di spinta per la voce successiva del primo array :
< p > sort ( a , arr [ 1 ] ) ;
continuare questo fino a quando si inserisce l'ingresso di spinta nella seconda matrice o fino a quando non ci sono più elementi nella prima matrice. In quest'ultimo caso , l'ingresso posto di spinta come l'elemento successivo nella seconda serie .
7
Copia il resto degli elementi del primo array nel secondo array . Ora di ingresso che di spinta è stata posta nel secondo array, non avete bisogno per la funzione di ordinamento . Da ora in poi , utilizzare il secondo array piuttosto che il primo , il primo array è ormai obsoleto. Con questo , la funzione Push è completa .
8
Scrivi la funzione pop . Questo richiede alcun input , ma restituisce un elemento dalla coda . Se il tipo di dati è intero, il codice sarà simile a questa :
int pop pubblici ( ) per
La seconda parola , "int ", significa che questa funzione viene emesso un intero < br . > Pagina 9
Creare un secondo array delle stesse dimensioni come la matrice corrente . Quindi, copiare il secondo elemento dal primo array nella prima voce del secondo array , 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 articoli , il codice sarà simile a questa :
secondArray [ 0 ] = arr [ 1 ] ;
secondArray [ 1 ] = arr [ 2] ;
< p > 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 ] è il secondo elemento di arr .
10
Ritorna il primo elemento della prima matrice. Il tuo codice sarà simile a questo :
ritorno arr [ 0 ] ;
Come con la funzione di spinta , la seconda serie è ora la tua coda. La funzione pop è ora completa .