Escolar Documentos
Profissional Documentos
Cultura Documentos
h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
do {
printf ( "spos %d: " , spos+ 1 ) ;
gets ( s ) ;
if ( *s== 0 ) {
break ;
}
p = ( char * ) malloc ( strlen ( s ) + 1 ) ;
if ( !p ) {
printf ( "Out of memory.\n" ) ;
return ;
}
strcpy ( p, s ) ;
if ( *s ) {
push ( p ) ;
}
} while ( *s ) ;
}
while ( 1 ) {
printf ( "Add(A), Print(P), Remove(R), Quit(Q): " ) ;
gets ( s ) ;
*s = toupper ( *s ) ;
switch ( *s ) {
case 'A' :
add () ;
break ;
case 'P' :
print () ;
break ;
case 'R' :
remove () ;
break ;
case 'Q' :
exit ( 0 ) ;
}
}
return 0 ;
}
/*
C: The Complete Reference, 4th Ed. (Paperback)
by Herbert Schildt
ISBN: 0072121246
Publisher: McGraw-Hill Osborne Media; 4 edition (April 26, 2000)
*/
/* A circular queue example using a keyboard buffer. */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAX 80
buf [ 80 ] = '\0' ;
/* Retrieve a character. */
char qretrieve ( void )
{
if ( rpos==MAX ) rpos = 0 ; /* loop back */
if ( rpos==spos ) return '\0' ;
rpos++;
return buf [ rpos- 1 ] ;
}
Una cola (que se pronuncia / ː Kju / Kew) es un tipo particular de recolección en los que
las entidades de la colección se mantiene en orden y el principal (o única) para las
operaciones de la colección son la adición de las entidades a la posición de los terminales
posteriores y la eliminación de entidades de la posición de conexión anterior. Esto hace
que la cola de una primera In-First-Out (FIFO) estructura de datos . En una estructura de
datos FIFO, el primer elemento añadido a la cola será el primero en ser eliminado. Esto es
equivalente a la obligación de que una vez que se agrega un elemento, todos los elementos
que se agregaron antes tienen que ser quitados antes de que el nuevo elemento puede ser
invocada. Una cola es un ejemplo de una estructura de datos lineales .
Las colas son habituales en los programas de ordenador, donde se implementan como
estructuras de datos junto con las rutinas de acceso, como una estructura de datos abstracta
o en idiomas orientados-objeto como clases. implementaciones más comunes son buffers
circulares y listas enlazadas .
Contenido
[hide]
1 Operaciones
2 Representación de una cola
3 cola de la aplicación
4 Ejemplo en C
5 Ejemplo C + + código de la lengua con matriz
6 Ejemplo de programa en Python
7 Ejemplo de programa Pascal
8 Ejemplo de clases de C #
9 Ejemplo de código Java
10 Ejemplo de código Javascript
11 Véase también
12 Referencias
13 Enlaces externos
[ editar ] Operaciones
Las operaciones habituales de la C + + Biblioteca de plantillas estándar son las siguientes:
bool empty ()
Devuelve True si la cola está vacía, y False en caso contrario.
T & frontal ()
Devuelve una referencia al valor en el frente de una cola no vacía. También hay
una versión de esta función constante, T constante y frontal ().
pop void ()
Elimina el elemento en el frente de una cola no vacía.
sin efecto push (const T & foo)
Inserta el foo argumento en la parte posterior de la cola.
tamaño size_type ()
Devuelve el número total de elementos en la cola.
En cada uno de los casos, el cliente o el objeto en la parte delantera de la línea fue el
primero en entrar, mientras que al final de la línea es el último que se ha incorporado. Cada
vez que un cliente termina pagando por sus artículos (o una persona se fuera de la escalera
mecánica, o la pieza de la máquina se retira de la línea de montaje, etc) que el objeto sale
de la cola de la parte delantera. Esto representa la cola de "quitar de la cola" de funciones.
Cada vez que otro objeto o cliente entra en la línea de espera, se unen a la final de la línea y
representan el "poner en cola" función. La cola de "tamaño" de la función que devuelve la
longitud de la línea, y el "vacío" función devolvería true sólo si no había nada en la línea.
matrices de longitud fija son limitados en la capacidad, e ineficaz porque los artículos se
deben copiar a la cabeza de la cola. Sin embargo, conceptualmente son simples y el trabajo
con las lenguas a principios tales como FORTRAN y base que no se han punteros o los
objetos. La mayoría de los idiomas modernos con objetos o punteros puede aplicar o
vienen con las bibliotecas de listas dinámicas. Estas estructuras de datos que no se
especifica límite de capacidad fija, además de las limitaciones de la memoria. Cola de los
resultados de desbordamiento de tratar de aportar un elemento en una cola llena y la cola
de desbordamiento ocurre cuando se trata de quitar un elemento de una cola vacía.
[ editar ] Ejemplo en C
En este ejemplo se utiliza un C solos lista enlazada y la memoria dinámica . Es una forma
eficiente de implementar contenedores lineales de acceso.
# Include
# Include <errno.h>
# Include <stdlib.h>
estructura queue_node
{
estructura queue_node * siguiente;
de datos int;
};
struct cola
{
estructura queue_node * primero;
estructura queue_node * última;
};
run_test (void)
{
struct cola de Q;
init_queue (& Q);
srand (time (NULL));
(1) 72
(2) 31
(3) 48
(4) 88
(5) 33
(6) 100
(7) 26
(8) 72
(9) 65
(10) 95
(11) 63
(12) 72
(13) 83
(14) 72
(15) 30
(16) 54
(17) 44
(18) 52
(19) 89
(20) 37
(21) 96
(22) 55
(23) 32
(24) 58
(25) 39
(26) 71
(27) 80
(28) 10
(29) 21
(30) 3
(31) 74
(32) 44
(33) 86
(34) 21
(35) 32
(36) 70
(37) 72
(38) 9
(39) 41
(40) 37
(41) 56
(42) 4
(43) 8
(44) 38
(45) 75
(46) 89
(47) 92
(48) 70
(49) 40
(50) 80
(51) 58
(52) 87
(53) 86
(54) 89
(55) 45
(56) 77
(57) 12
(58) 76
(59) 86
(60) 84
(61) 30
(62) 60
(63) 28
(64) 15
(65) 32
(66) 11
(67) 85
(68) 4
(69) 71
(70) 25
(71) 40
(72) 26
(73) 80
(74) 99
(75) 64
(76) 6
(77) 87
(78) 7
(79) 28
(80) 78
(81) 38
(82) 85
(83) 64
(84) 23
(85) 26
(86) 60
(87) 99
(88) 37
(89) 87
(90) 37
(91) 20
(92) 17
(93) 48
(94) 47
(95) 31
(96) 79
(97) 9
(98) 67
(99) 82
(100) 80
[ editar ] Ejemplo C + + código de la lengua con matriz
Este ejemplo C + + lenguaje utiliza una matriz de longitud fija y variable global para la
simplicidad conceptual.
# Include "stdafx.h"
# Include <iostream>
# Include "math.h"
# Include <time.h>
using namespace std;
# Define QMAX 10
struct Nodo
{
int valor;
Nodo * siguiente;
};
Nodo * Q [QMAX];
cabeza int = 0;
cola int = 0;
PrintQueue void ()
{
int index = cabeza;
int QueueLength = (cola + QMAX - cabeza) QMAX%;
for (int index = cabeza, la cabeza <indice + QueueLength, el
índice + +)
{
cout <<Q [(índice + Qmax)% QMAX] -> valor <<"-";
}
Cout <<endl;
}
vacío PrintArray ()
{
for (int i = 0; i <10; i + +)
{
si (Q [i]! = NULL)
{
cout <<Q [i] -> valor <<"-";
}
más
{
Cout <<"00" <<"-";
}
}
Cout <<endl;
}
return 0;
}
68 a 00 - 00 - 00 - 00 - 00 - 00 - 00 - 00 - 00 -
68 a 1 - 00 - 00 - 00 - 00 - 00 - 00 - 00 - 00 -
00-1 - 00 - 00 - 00 - 00 - 00 - 00 - 00 - 00 -
00-1 - 79 - 00-00 - 00 - 00-00 - 00 - 00 -
00-1 - 79 - 63-00 - 00 - 00-00 - 00 - 00 -
00 a 00 - 79 - 63-00 - 00 - 00-00 - 00 - 00 -
00 a 00 - 79 - 63-46 - 00 - 00-00 - 00 - 00 -
00 a 00 - 00 - 63-46 - 00 - 00-00 - 00 - 00 -
00 a 00 - 00 - 63-46 - 62 - 00-00 - 00 - 00 -
00 a 00 - 00 - 00-46 - 62 - 00-00 - 00 - 00 -
00 a 00 - 00 - 00 - 00 - 62-00 - 00 - 00 - 00 -
00 a 00 - 00 - 00 - 00 - 62-28 - 00 - 00 - 00 -
00 a 00 - 00 - 00-00 - 62 - 28-92 - 00 - 00 -
00 a 00 - 00 - 00-00 - 62 - 28-92 - 3 - 00 -
00 a 00 - 00 - 00 - 00 - 62-28 - 92 - 3-93 -
00 a 00 - 00 - 00-00 - 00 - 28-92 - 3 - 93 -
17 a 00 - 00 - 00-00 - 00 - 28-92 - 3 - 93 -
17 a 96 - 00 - 00-00 - 00 - 28-92 - 3 - 93 -
17 a 96 - 27 - 00-00 - 00 - 28-92 - 3 - 93 -
17 a 96 - 27 - 00-00 - 00 - 00-92 - 3 - 93 -
Pulse cualquier tecla para continuar. . .
clase de cola:
def __init__ (, artículos de auto = None):
si los artículos es None:
elementos = []
auto. __queue = elementos
estaVacio definición (self):
len retorno (sí. __queue) == 0
enqueue definición (, obj mismo):
auto. __queue. append (obj)
dequeue definición (self):
retorno libre. __queue. pop (0)
mirar definición (self):
retorno libre. __queue [0]
programa de cola;
tipo
link = ^ nodo;
nodo = record
; Siguiente enlace:
; Entero clave:
final;
var
U: integer;
cola, la cabeza: enlace;
comenzar
queinit;
u: = 1;
puso (u); / / Poner 1 en la cola
u: = 2;
puso (u); / / Ponga 2 en la cola
u: = 3;
puso (u); / / Ponga 3 en la cola
finales.
Primer nodo;
Último nodo;
int cuenta = 0;
= Primer nodo;
cuenta + +;
}
Dequeue pública T ()
{
if (cuenta == 0)
lanzar nuevos InvalidOperationException ("cola está
vacía.");
Nodo = nodo anterior;
último nodo anterior = anterior.;
última = anterior;
si (== null anterior)
= Null primero;
contar -;
volver nodo de valor.;
}
[ editar ] Referencias
General
Citaciones