Tecnología

Inicio

Cómo implementar cola de prioridad Clase utiliza matriz

Cómo implementar cola de prioridad Clase utiliza matriz


A las tiendas de cola de datos en secuencia y contiene dos funciones: empuje y el pop. Empuje coloca un elemento en el extremo de la cola; pop elimina el elemento de la parte delantera y la devuelve. Una cola de prioridad se comporta de manera similar, pero con una diferencia: empuje agrega elementos a la cola en un cierto orden. Las matrices no son ideales para una cola de prioridad; carecen de flexibilidad, lo que hace difícil para ordenar la cola. Sin embargo, son útiles para el aprendizaje del concepto.

Instrucciones

1 Elegir tipo de los datos de la cola de prioridad puede contener. Si esta es la primera vez que escribo una cola de prioridad, elegir algo simple, como un entero.

2 Crear una matriz para servir como su cola. Si el tipo de datos es entero, y desea llevar 10 artículos, la matriz se ha creado usando código como este:

int [] arr = new int [10];

Tenga en cuenta que 0 es el primer índice de cualquier matriz. Para acceder al primer índice de arr, que haría referencia al arr [0], y la matriz [9] accedería el último índice de arr. En este caso, arr [10] provoca un error.

3 Determinar la función de clasificación. Que se utilizará más adelante para empujar los elementos en el orden correcto. Esta función tiene dos entradas, y luego las compara. Si la primera entrada tiene un valor más alto, la función devuelve 1; si ambas entradas tienen el mismo valor, devuelve 0; y si la primera entrada tiene un valor inferior, se devuelve -1. Si esta es la primera vez que escribir una función de clasificación, y el tipo de datos de elección es el número entero, debe comenzar con el orden numérico, en el que los números más bajos tienen un valor inferior. Clasificación por valor numérico, el código se verá así:

si (primero> segundo) return 1;

si (== primer segundo) return 0;

si (primera <segundo) devuelve -1;

Esto también funciona para otros tipos de datos de serie, tales como dobles y flotadores. Si está utilizando cuerdas, se puede ordenar por orden alfabético.

4 Iniciar la función de empuje. Este toma una entrada, el elemento para empujar en la cola, y da salida a nada. En Java, si el tipo de datos es entero, el código se verá así:

empuje public void (int in)

Su código será similar en la mayoría de otros lenguajes de programación, incluyendo C y C ++. "Vacío" significa que esta función dará salida a nada.

5 Crear una matriz del mismo tamaño que la matriz que utiliza para su cola. Si la matriz actual puede llevar 10 números enteros, se creará una matriz de esta manera:

int [] secondArray = new int [10];

Esta segunda matriz más tarde se convertirá en su cola. Si la última entrada de la matriz está llena, esto significa que ha utilizado cada entrada en la matriz; en su lugar debe crear una matriz que es una entrada más grande.

6 Comparar la entrada a cada elemento de la matriz, empezando con la primera, utilizando la función de clasificación. Siempre que la entrada del impulso en el primer elemento se coloca en la función de clasificación. Para comparar la entrada del empuje y el primer elemento de arr, su código se verá así:

sort (en, arr [0]);

Aquí, "en" es el nombre dado a la variable de entrada del paso 4.

Si esto devuelve -1, puesto de entrada de empuje en la segunda matriz:

secondArray [0] = en;

De lo contrario, copie el elemento de la primera matriz en la segunda matriz:

secondArray [0] = arr [0];

A continuación, compare la entrada de empuje para el siguiente elemento de la primera matriz:

sort (en, arr [1]);

Continúe hasta la entrada del empuje se inserta en la segunda matriz o hasta que no haya más elementos en la primera matriz. En este último caso, el lugar de entrada de empuje como el siguiente elemento de la segunda matriz.

7 Copiar el resto de los elementos de la primera matriz en la segunda matriz. Ahora la entrada de ese empuje se ha colocado en la segunda matriz, usted no tiene ninguna necesidad de que la función de clasificación. A partir de ahora, tendrá que utilizar la segunda matriz en lugar de la primera; la primera matriz se ha quedado desfasado. Con esto, la función de empuje es completa.

8 Escribe la función emergente. Esto se lleva a ningún insumo, pero da salida a un elemento de la cola. Si el tipo de datos es entero, el código se verá así:

public int pop ()

La segunda palabra, "int", significa que esta salida de la función voluntad un número entero.

9 Crear una segunda matriz del mismo tamaño que la matriz actual. A continuación, copie el segundo elemento de la primera matriz en la primera entrada de la segunda matriz, el tercer punto en la segunda entrada de la segunda serie, y así sucesivamente y así sucesivamente, hasta que no hay más entradas. No copie el primer elemento de la primera matriz. Si la matriz contiene 4 elementos, el código se vería así:

secondArray [0] = arr [1];

secondArray [1] = arr [2];

secondArray [2] = arr [3];

Recordemos que el primer índice de una matriz es 0. Esto significa que secondArray [0] es el primer elemento de secondArray, y la matriz [1] es el segundo punto de arr.

10 Devolver el primer elemento de la primera matriz. Su código se verá así:

volver arr [0];

Al igual que con la función de empuje, la segunda matriz es ahora su cola. La función del pop se ha completado.