2010-10-01 24 views
8

hola todavía soy un estudiante y estoy un poco confundido acerca de cómo apilar y hacer cola? primera pregunta es,pila frente a la cola?

  1. lo que es la diffrence principal entre ellos dos?

  2. por cierto hay cola circular junto a la cola normal ¿qué tal eso? Cómo trabajan ? ¿Hay alguna forma diferente de hacer cola?

  3. im useing php, ¿hay algún código de muestra simple (muy simple o fácil de leer) que pueda aprender (los enlaces también están bien)?

  4. hay pop, push y etc. (apilamiento y puesta en cola), ¿hay algo así en php?

Muchas gracias por mirar en.

+4

Aprecio que sea un estudiante, pero realmente debería ser capaz de buscar trivialmente y encontrar respuestas a estas preguntas. –

+1

Busque LIFO y FIFO. –

+1

@noon - tal vez sí, pero ya ha pedido más de 30 preguntas en StackOverflow, por lo que debe confiar en la calidad de las respuestas dadas. – kevchadders

Respuesta

20

1: Mientras que con las pilas de las operaciones de inserción/eliminación de tanto el trabajo en el mismo extremo de la estructura de datos (parte superior)

con colas de la inserción se lleva a cabo en un extremo (posterior) y la remoción en el otro extremo (frente).

(ambas imágenes son de los respectivos entradas de Wikipedia)

2: ver http://en.wikipedia.org/wiki/Circular_buffer

3: y 4: ver SplStack y SplQueue

+0

+1 por mencionar realmente los tipos de SPL. – Gordon

+0

+1. ¡¡Genial !!!. veamos lo que dicen otros. –

3

Parece que está siendo dirigido hacia la diferencia entre las colas primeros en entrar primero en salir y último en entrar primero en salir. Una pila es la primera, y una cola circular es una implementación eficiente de la última.

  1. A stack es una LIFO (último en entrar, primero en salir) de colas.

  2. - Estos fueron los más comunes en los buffers de interfaz de comunicación ya que tenían memoria limitada con datos que llegaban de forma asíncrona y los datos que la CPU leía en momentos diferentes.

  3. Puede crear colas en cualquier idioma si conoce bien su idioma.

  4. El php website ofrece mucha documentación.

2

A stack agrega y quita elementos del mismo extremo.

Un queue agrega elementos a la espalda y elimina los elementos de la parte frontal (como una línea en un banco.)

Hay un article about them both que explica en detalle con ejemplos de código.

A circular buffer tiene espacio limitado y sigue agregando elementos de forma circular sobrescribiendo los que están al final.

7

en PHP que usaría un array() para almacenar los datos tanto para pilas y colas y utilizar el array_ * funciones de manipularlos. Echar un vistazo a array functions at php.net

Tienes

  • array_push - poner un nuevo elemento al final de la serie
  • array_pop - eliminar un elemento de final de la matriz
  • array_shift - eliminar un elemento desde el principio de la matriz
  • array_unshift - coloque un nuevo elemento en el comienzo de la matriz.

  • Para una pila tendrá que utilizar array_push y array_pop

  • Para una cola que tendría que utilizar array_push y array_shift

un buffer circular que pondría en práctica como un objeto independiente.

Cuestiones relacionadas