Diferencia entre revisiones de «Cola (informática)»

Contenido eliminado Contenido añadido
Semibot (discusión · contribs.)
m Bot: reemplazando etiqueta source desaconsejada
Xqbot (discusión · contribs.)
m Bot: Reemplace la etiqueta obsoleta <source> y el parámetro "enclose"; cambios superficiales
Línea 1:
[[Archivo:Cola.svg|thumbminiaturadeimagen|200px|rightderecha|Representación simplificada de una cola]]
 
Una '''cola''' (también llamada '''fila''') es una [[estructura de datos]], caracterizada por ser una secuencia de elementos en la que la operación de inserción ''push'' se realiza por un extremo y la operación de extracción ''pull'' por el otro. También se le llama estructura [[FIFO]] (del inglés ''First In First Out''), debido a que el primer elemento en entrar será también el primero en salir.
Línea 8:
== Usos concretos de la cola ==
 
La particularidad de una estructura de datos de cola es el hecho de que sólo podemos acceder al primer y al último elemento de la estructura. Así mismo, los elementos sólo se pueden eliminar por el principio y sólo se pueden añadir por el final de la cola.[[Archivo:ColaProg.JPG|rightderecha|borderborde|400px|Ejemplo de Cola]]
Ejemplos de colas en la vida real serían: personas comprando en un supermercado, esperando para entrar a ver un partido de béisbol, esperando en el cine para ver una película, una pequeña peluquería, etc. La idea esencial es que son todos líneas de espera.
 
Línea 17:
== Operaciones Básicas ==
* '''Crear''': se crea la cola vacía.
* '''Encolar''': se añade un elemento a la cola. Se añade al final de esta.
* '''Desencolar''': (sacar, salir, eliminar): se elimina el elemento frontal de la cola, es decir, el primer elemento que entró.
* '''Frente''': (consultar, front): se devuelve el elemento frontal de la cola, es decir, el primer elemento que entró.
Línea 299:
</pre>
 
=== Colas en C++ ===
<syntaxhighlight lang="CPP">
#ifndef COLA
#define COLA // Define la cola
Línea 351:
</syntaxhighlight>
 
=== Colas en JAVA ===
Al igual que las pilas, este tipo de estructura de datos se puede implementar de forma estática o dinámica, es decir, ya sea con un arreglo o con una lista enlazada. Al hablar de una cola estática, se considera que tendrá un tamaño definido y no podrá superar dicha capacidad para el almacenamiento de más información, sólo la indicada. Y con respecto a una cola dinámica corresponde a aquella que no tendrá un límite de capacidad, es decir, podemos hacer n número de inserciones.
 
Línea 476:
</syntaxhighlight>
 
=== Colas en C# ===
<syntaxhighlight lang="csharp">
public partial class frmPrincipal
{
Línea 532:
</syntaxhighlight>
Algoritmo Insertar(Cola, N, Frente, Final, Elemento)
<syntaxhighlight lang="csharp">
 
void CmdInsertarClick(object sender, System.EventArgs e)
Línea 571:
</syntaxhighlight>
Algoritmo Eliminación (Cola, Frente, Final, N)
<syntaxhighlight lang="csharp">
 
void CmdEliminarClick(object sender, EventArgs e)
Línea 605:
Otra forma de programar una cola en Java
Por Jorge Herrera C
<syntaxhighlight lang="java">
import java.util.*;
public class Cola <Tipo>{
Línea 627:
</syntaxhighlight>
A continuación un ejemplo de una clase manejadora de la clase Cola
<syntaxhighlight lang="java">
public class Manejador {
public static void main(String[] args) {
Línea 658:
* ''[[Bicola]]s'' (o [[Cola doblemente terminada|Colas doblemente terminadas]]): son colas en donde los nodos se pueden añadir y quitar por ambos extremos; se les llama DEQUE (Double Ended QUEue). Para representar las bicolas lo podemos hacer con un array circular con Inicio y Fin que apunten a cada uno de los extremos. Hay variantes:
 
* ''Bicolas de entrada restringida'': Son aquellas donde la inserción sólo se hace por el final, aunque podemos eliminar al ''inicio'' ó al ''final''.
 
* ''Bicolas de salida restringida'': Son aquellas donde sólo se elimina por el final, aunque se puede insertar al ''inicio'' y al ''final''.
Línea 672:
 
[[Categoría:Tipos abstractos de datos]]
 
[[Categoría:Estructura de datos]]