Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tope
Tope
Fondo
5
Representación
Las pilas no están definidas como tales en los
lenguajes de programación, se representan mediante el
uso de Arreglos o Listas ligadas.
Decrece
Crece
4
3
2
1
0
6
Representación
4
3
2
1
0 Tope
8
Operaciones
En una pila se pueden hacer dos operaciones:
Insertar: meter a la pila (PUSH)
Eliminar: sacar de la pila (POP)
Pop
Push 4 Tope
3 3 Tope
2 9 Tope
1 1 Tope
0 5 Tope
9
Manejo
Push:
Introducir el dato.
Incrementar el Tope.
Que pasa si la pila esta llena y se intenta introducir algún
dato?
Pop:
Decrementar el Tope.
Sacar el dato.
Que pasa si la pila esta vacía y se intenta sacar algún
dato? 10
11
Operaciones
COMPORTAMIENTO DE LA PILA
Constructor: debe crear una pila vacía de tamaño n;
Pila (int n);
Función para checar si la pila esta vacía:
boolean EsPilaVacia( );
Función para checar si la pila esta llena:
boolean EsPilaLlena( );
Función para insertar un elemento a la pila:
Push(int dato);
Función para sacar un elemento de la pila:
int Pop( );
Función para imprimir el estado actual de la pila:
VerPila( );
12
Colas
Atrás Frente
Frente
Frente
Atrás
Atrás
14
Representación
Las colas no están definidas como tales en los
lenguajes de programación, éstas se representan
mediante el uso de Arreglos o Listas ligadas.
1 2 3 4 5 6 7 8 9 10 11
3 2 5
Frente Atrás
15
Representación 1
Recorriendo información del arreglo
Los elementos se colocan a partir de la primera
posición hasta la posición máxima.
1 2 3 4 5 6 7 8 9 10 11
4 8 5 2 23 91 9 18 3 11 7
Frente Atrás
Representación 1
16
1 2 3 4 5 6 7 8 9 10 11
8 5 2 23 91 9 18 3 11 7
Frente Atrás
17
Representación 1
1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9 10 11
Insertar 4 8 5
Eliminar
Frente Atrás
22
Operaciones
COMPORTAMIENTO DE LA COLA
Constructor: debe crear una cola vacía de tamaño n;
Cola (int n);
Función para checar si la cola esta vacía:
boolean EsColaVacia( );
Función para checar si la cola esta llena:
boolean EsColaLlena( );
Función para insertar un elemento a la cola:
Inserta(int dato);
Función para sacar un elemento de la cola:
int Sacar( );
Función para imprimir el estado actual de la cola:
VerCola( );
23
Cola Circular
Suponga que se tiene la siguiente cola:
1 2 3 4 5 6 7 8 9 10 11
4 8 5 2 23 91 9 18 3 11 7
Frente Atrás
1 2 3 4 5 6 7 8 9 10 11
2 23 91 9 18 3 11 7
Frente Atrás
1 2 3 4 5 6 7 8 9 10 11
4 8 5 2 23 91 9 18 3 11 7
Frente Atrás
26
Representación
Por lo que se puede representar:
1 Frente
8
Atrás
7 2
6 3
5 4
27
Operaciones
Se tienen las mismas operaciones que en una cola
lineal. Frente
8 1
Atrás
5
Frente
7 2
7 Atrás
Insertar
Eliminar 9 Frente
6 3
Atrás
5 4 Atrás
28
Operaciones
1 Frente
8
Atrás
5
Frente
7 2
7 Atrás
Insertar
Eliminar 9 Frente
6 3
Atrás
5 4 Atrás
Operaciones
31
COMPORTAMIENTO DE LA COLA
Constructor: debe crear una cola vacía de tamaño n;
ColaC (int n);
Función para checar si la cola esta vacía:
boolean EsColaCVacia( )
{ return (Frente == -1); }
Función para checar si la cola esta llena:
boolean EsColaCLlena( )
{ return ((Atrás +1) % n ==Frente); }
Función para insertar un elemento a la cola:
InsertaC(int dato)
{ Atrás = (Atrás + 1) % n ;
arre[Atras] = dato ;
if ( Frente == -1) Frente = 0;
}
34
Operaciones
COMPORTAMIENTO DE LA COLA
Función para sacar un elemento de la cola:
int SacarC( )
{ dato = arreglo[Frente];
if (Frente == Atrás)
Frente = Atrás = -1;
else
Frente = (Frente + 1) % n;
return dato;
}
Función para imprimir el estado actual de la cola:
VerColaC( ); ………… ?