Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> .

Come implementare OB di coda mediante array

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 :

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] ;

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 .

 

Programmazione © www.354353.com