SlideShare una empresa de Scribd logo
1 de 55
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad III: Estructuras Lineales
Mtro. José Antonio Sandoval Acosta
Retícula ISIC-2010-224: Programa: AED-1026/2016
Itsguasave.edu.mx
Competencia de la Unidad
• Comprende y aplica estructuras de datos lineales para solución de
problemas.
ESTRUCTURA DE DATOS
Estructuras Lineales
• En esta unidad se comienza el estudio de las estructuras de datos dinámicas.
Al contrario que las estructuras de datos estáticas (arrays) en las que su
tamaño en memoria se establece durante la compilación y permanece
inalterable durante la ejecución del programa, las estructuras de datos
dinámicas crecen y se contraen a medida que se ejecuta el programa, por lo
que la cantidad de memoria que requieren para funcionar es muy variable.
• Las estructuras lineales de elementos homogéneos implementadas con arrays
necesitan fijar por adelantado el espacio a ocupar en memoria, de modo que
cuando se desea añadir un nuevo elemento, que rebase el tamaño prefijado,
no será posible sin que se produzca un error en tiempo de ejecución. Esto hace
ineficiente el uso de los arrays en algunas aplicaciones.
ESTRUCTURA DE DATOS
PILAS
ESTRUCTURA DE DATOS
PILAS
PILA: Es un conjunto de elementos que solo pueden insertarse y
eliminarse por un extremo. Se trata de una estructura de datos de
acceso restrictivo a sus elementos.
Un ejemplo de pila es una torre de discos compactos, en la cual los
discos se insertan y se extraen por el mismo extremo.
ESTRUCTURA DE DATOS
• En la computación estas estructuras suelen ser fundamentales. La recursividad
se simula en un computador con la ayuda de una pila. Asimismo muchos
algoritmos emplean las pilas como estructura de datos fundamental, por
ejemplo para mantener una lista de tareas pendientes que se van acumulando.
• Las pilas ofrecen dos operaciones fundamentales, que son apilar y desapilar
sobre la cima. El uso que se les de a las pilas es independiente de su
implementación interna. Es decir, se hace un encapsulamiento. Por eso se
considera a la pila como un tipo abstracto de datos.
• Es una estructura de tipo LIFO (Last In First Out), es decir, último en entrar,
primero en salir.
ESTRUCTURA DE DATOS
ELEMENTOS DE UNA PILA
• Tope o cima: Indica el último elemento insertado en la pila.
• Máximo: Se refiere al número de elementos que puede contener la pila.
ESTRUCTURA DE DATOS
• Pilas con Arreglos: Representar pilas usando arreglos es relativamente más
sencillo que usando listas enlazadas, el único problema que existe es la
limitante de espacio en memoria, ya que al definir un tamaño máximo ya no es
posible insertar más elementos.
ESTRUCTURA DE DATOS
• Pilas con Listas enlazadas: Son llamadas también estructuras dinámicas, ya
que el espacio en memoria se crea hasta que se inserta el elemento.
ESTRUCTURA DE DATOS
OPERACIONES CON PILAS
Operaciones Auxiliares con PILAS
• Pila llena (si el tope == Máximo-1)
• Pila vacía (si tope == -1)
• Recorrer pila (desde elemento 0 hasta tope)
Eliminar un elementoInsertar un elemento
ESTRUCTURA DE DATOS
Estatus de las PILAS
ESTRUCTURA DE DATOS
TRABAJANDO CON PILAS POR MEDIO DE ARRAYS (ESTÁTICAS)
Crear las variables necesarias
int pila[5];
int maximo=5;
Int tope=-1;
Int dato=0;
Int opc=0;
Pila
Máximo de
elementos
Iniciar tope con
valor negativo
Variable para
captura de datos
Variable para menú
de opciones
ESTRUCTURA DE DATOS
VERIFICAR SI LA PILA ESTA LLENA
Algoritmo
FUNCION boolena llena()
SI (tope == maximo – 1)
regresar verdadero
SINO
regresar falso
FINSI
FINFUNCION
ESTRUCTURA DE DATOS
VERIFICAR SI LA PILA ESTA VACIA
Algoritmo
FUNCION boolena vacia()
SI (tope == – 1)
regresar verdadero
SINO
regresar falso
FINSI
FINFUNCION
ESTRUCTURA DE DATOS
INSERTAR ELEMENTO EN LA PILA
Algoritmo
MODULO insertar() {
SI LA PILA ESTA LLENA
MOSTRAR “Pila llena”
SINO
CAPTURAR ELEMENTO
INCREMENTAR tope EN 1
pila[tope]=ELEMENTO;
FINSI
FINMODULO
ESTRUCTURA DE DATOS
ELIMINAR ELEMENTO EN LA PILA
Algoritmo
MODULO eliminar() {
SI LA PILA ESTA VACIA
MOSTRAR “Pila Vacia”
SINO
MOSTRAR CONTENIDO
ELIMINAR ELEMENTO
DECREMENTAR TOPE EN 1
FINSI
FINMODULO
ESTRUCTURA DE DATOS
RECORRIDO DE UNA PILA
Algoritmo
MODULO recorrer() {
DECLARAR var de trabajo
SI LA PILA ESTA VACIA
MOSTRAR “Pila Vacia”
SINO
MIENTRAS var<=tope
MOSTRAR CONTENIDO
INCREMENTAR var en 1
FINMIENTRAS
FINSI
FINMODULO
ESTRUCTURA DE DATOS
• Ejercicio: Desarrolle el programa correspondiente a la PILA que se ha visto en
clase creando un menú que contemple las siguientes opciones:
1. Pila llena
2. Pila vacía
3. Insertar
4. Eliminar
5. Recorrido
6. Terminar
• Entregar el programa en código para revisión
ESTRUCTURA DE DATOS
COLAS
ESTRUCTURA DE DATOS
Definición de COLAS
Una COLA es un conjunto homogéneo de elementos, del cual
pueden suprimirse elementos sólo desde un extremo llamado
parte delantera, asimismo, sólo pueden agregarse elementos en
el extremo contrario llamado parte posterior.
• El primer elemento en ser agregado a una COLA es
el primer elemento en ser eliminado.
• Por esta razón una COLA se denomina FIFO (First
In-First Out), que es justo el concepto contrario a
una PILA o LIFO (Last In-First Out).
ESTRUCTURA DE DATOS
COLAS DINÁMICAS CON NODOS
Parte
Delantera o
Salida
Parte
Posterior o
Entrada
ESTRUCTURA DE DATOS
COLAS ESTÁTICAS CON ARRAYS
Parte
Posterior o
Entrada
Parte
Delantera
o Salida
Operaciones Auxiliares con COLAS
• COLA llena (si el final == Máximo-1)
• COLA vacía (si final == -1)
• Recorrer COLA (desde elemento 0 hasta final)
ESTRUCTURA DE DATOS
TRABAJANDO CON COLAS ESTÁTICAS
• Una cola estática utiliza un arreglo con un número limitado de elementos en el
mismo, dicho arreglo requiere de una constante que controle el máximo de
elementos que pueden ser cargados a la cola, y de una variable que controle el
elemento final de la cola (último en ser insertado).
• Declaración de las variables de la COLA estática
int cola[5];
int final = -1;
int maximo = 5;
COLA
Último elemento
Máximo de elementos
ESTRUCTURA DE DATOS
ALGORITMO PARA DETERMINAR SI LA COLA ESTÁ LLENA
FUNCION BOLEANA llena ()
SI (final >= maximo - 1 ) ENTONCES
REGRESAR verdadero
SINO
REGRESAR falso
FINSI
FINFUNCION
ALGORITMO
ESTRUCTURA DE DATOS
ALGORITMO PARA DETERMINAR SI LA COLA ESTÁ VACIA
FUNCION BOLEANA vacia ()
SI (final < 0) ENTONCES
REGRESAR verdadero
SINO
REGRESAR falso
FINSI
FINFUNCION
ALGORITMO
ESTRUCTURA DE DATOS
ALGORITMO PARA INSERTAR ELEMENTO EN LA COLA
MODULO insertar(DATO)
SI (llena) ENTONCES
IMPRIME “cola llena”
SINO
incrementar final
cola[final]=DATO
FINSI
FINMODULO
ALGORITMO
ESTRUCTURA DE DATOS
ALGORITMO PARA ELIMINAR ELEMENTO EN LA COLA
MODULO eliminar ()
SI (vacia) ENTONCES
IMPRIME “cola vacia”
SINO
FOR (J=0, J<máximo, j++)
cola[j]=cola[j+1]
FINFOR
FINSI
DECREMENTAR final
FINMODULO
ALGORITMO
ESTRUCTURA DE DATOS
ALGORITMO PARA HACER RECORRIDO DE COLA
MODULO recorrer ()
SI (vacia) ENTONCES
IMPRIME “cola vacia”
SINO
FOR (J=0, J<=final, j++)
imprime cola[j]
FINFOR
FINSI
FINMODULO
ALGORITMO
ESTRUCTURA DE DATOS
• Ejercicio: Desarrolle el programa correspondiente a la COLA que se ha visto en
clase creando un menú que contemple las siguientes opciones:
1. Cola llena
2. Cola vacía
3. Insertar
4. Eliminar
5. Recorrido
6. Salir
• Nota: Cada vez que se desee eliminar un elemento debe verificarse la cantidad
que se desea eliminar: si es menor al valor del elemento en la parte delantera
de la cola deberá restarse pero sin eliminar el elemento; si es mayor debe
eliminarse y el faltante restarlo del siguiente elemento en la cola a manera de
un inventario de almacén.
ESTRUCTURA DE DATOS
LISTAS ENLAZADAS
ESTRUCTURA DE DATOS
• Una lista enlazada es una colección o secuencia de elementos dispuestos uno
detrás de otro, en la que cada elemento se conecta al siguiente elemento por
un “enlace”.
• La idea básica consiste en construir una lista cuyos elementos, llamados
nodos, se componen de dos partes o campos:
 La primera parte contiene la información y es, por consiguiente, un valor
de un tipo genérico (denominado Dato, TipoElemento, Info, etc.);
 La segunda parte es un enlace que apunta al siguiente nodo de la lista.
ESTRUCTURA DE DATOS
• La representación gráfica más extendida es aquella que utiliza una caja con dos
secciones en su interior. En la primera sección se encuentra el elemento o
valor a almacenar y en la segunda sección el enlace o puntero, representado
mediante una flecha que sale de la caja y apunta al siguiente nodo.
ESTRUCTURA DE DATOS
Clasificación de las listas enlazadas
LISTAS SIMPLEMENTE ENLAZADAS: Cada nodo (elemento)
contiene un único enlace que conecta ese nodo al nodo siguiente
o nodo sucesor. La lista es eficiente en recorridos directos
(“adelante”).
ESTRUCTURA DE DATOS
Clasificación de las listas enlazadas
LISTAS DOBLEMENTE ENLAZADAS: Cada nodo contiene dos
enlaces, uno a su nodo predecesor y el otro a su nodo sucesor. La
lista es eficiente tanto en recorrido directo (“adelante”) como en
recorrido inverso (“atrás”).
ESTRUCTURA DE DATOS
Clasificación de las listas enlazadas
LISTA CIRCULAR SIMPLEMENTE ENLAZADA: Una lista simplemente
enlazada en la que el último elemento (cola) se enlaza al primer
elemento (cabeza) de tal modo que la lista puede ser recorrida de
modo circular (“en anillo”).
ESTRUCTURA DE DATOS
Clasificación de las listas enlazadas
LISTA CIRCULAR DOBLEMENTE ENLAZADA: Una lista doblemente
enlazada en la que el último elemento se enlaza al primer
elemento y viceversa. Esta lista se puede recorrer de modo circular
(en anillo) tanto en dirección directa (“hacia adelante”) como
inversa (“hacia atrás”).
ESTRUCTURA DE DATOS
TRABAJANDO CON LISTAS SIMPLES POR MEDIO DE CLASES
• Para trabajar con una lista enlazada debemos crear una clase que refleje la
información contenida en cada nodo de la misma y que contenga una variable
de tipo apuntador que conecte cada nodo con el nodo siguiente.
La variable tipo apuntador
se define con un asterisco
y debe ser del mismo tipo
de la clase declarada.
ESTRUCTURA DE DATOS
• Después debemos definir una segunda clase que contendrá todos los métodos
para insertar, eliminar y recorrer la lista.
ESTRUCTURA DE DATOS
Las variables con un asterisco
indican que son apuntadores,
después en los métodos serán
creados los objetos de
memoria.
INSERTAR PRIMER NODO DE LA LISTA VACIA
Cando declaramos la variable NI utilizando un asterisco (*NI) lo que hicimos fue
indicar que se trata de un apuntador, ahora corresponde crear el nodo en
memoria por medio de la instrucción new, por lo que ya no es necesario
declarar de nuevo o utilizar el asterisco. Cabe mencionar que cuando creas el
nodo nuevo el campo sig es igualado a NULL en el constructor:
Algoritmo de inserción
Crear el nuevo nodo
Asignar la información
al campo
correspondiente
Asignar nodo cola
ESTRUCTURA DE DATOS
• Reservar memoria y crear nuevo
nodo
• Asignar información al nuevo nodo
• Encadenar nuevo nodo con el nodo
inicio actual
• Convertir nuevo nodo en nodo
inicio
ESTRUCTURA DE DATOS
INSERTAR NODO AL INICIO CUANDO LA LISTA YA TIENE ELEMENTOS
ALGORITMO DE INSERCIÓN DE
NODOS SUBSECUENTES EN LA LISTA
(INCLUYENDO NODO COLA O “TAIL”).
• Reservar memoria y crear nuevo
nodo
• Asignar datos al nuevo nodo
• Convertir el nodo nuevo en nodo
cola
ESTRUCTURA DE DATOS
RECORRER LA LISTA DESDE EL INICIO
Igualar nodo de trabajo a nodo cabeza
MIENTRAS sea VERDADERO
Imprimir datos del nodo
Nodo de trabajo = siguiente nodo
SI nodo de trabajo es NULL salir
FIN-MIENTRAS
ESTRUCTURA DE DATOS
ALGORITMO DE INSERCIÓN DE NODOS AL INICIO DE LA LISTA O NODO CABEZA.
SI cabeza==NULL
crear nuevo nodo inicial
asignar datos al campo correspondiente
asignar NULL a la variable apuntador
SINO
reservar memoria y crear nuevo nodo
asignar datos al campo correspondiente
enlazar el nodo actual con el nodo cabeza
igualar nodo cabeza al nodo actual
FINSI
ESTRUCTURA DE DATOS
ELIMINAR UN NODO DE LA LISTA
• Para eliminar un nodo de la lista debemos verificar primero si se trata del
nodo cabeza o de un nodo subsecuente, o del nodo cola.
• Para realizar esta eliminación son necesarios 3 variables auxiliares tipo nodo:
auxiliar, actual, anterior
• A continuación se presenta el algoritmo para hacer dicha verificación y la
posterior eliminación;
ESTRUCTURA DE DATOS
ESTRUCTURADEDATOS
• Ejercicio: Realizar el programa completo con listas enlazadas simples.
 Debe incluir menú de opciones;
 Debe incluir módulo de captura de Nodo de Inicio o Nodo Cabeza;
 Debe poder capturar Nodo Cola;
 Debe poder insertar un nuevo Nodo Cabeza;
 Debe poder eliminar un nodo seleccionado;
 Debe incluir un recorrido desde el Nodo Cabeza hasta el Nodo Cola
mostrando el promedio los elementos contenidos y el número de nodos
de la lista;
• Entregar el programa
ESTRUCTURA DE DATOS
TRABAJANDO CON LISTAS DE DOBLE ENLACE-CIRCULARES CON CLASES
• Al utilizar clases para crear los nodos se elimina el uso “struct” y se hace uso
de la POO en todos sus aspectos.
Se crea una clase que
contiene únicamente las
variables del NODO,
también debemos crear el
respectivo constructor.
ESTRUCTURA DE DATOS
Creamos una clase LISTA con
sus métodos y constructor,
también agregamos la
declaración de los nodos NI
(inicio) y NT (cola)
ESTRUCTURA DE DATOS
INSERTAR NODO INICIAL O CABECERA DE LA LISTA
• Cuando declaramos la variable NI utilizando un asterisco (*NI) lo que hicimos
fue indicar que se trata de un apuntador, por lo que ahora solo tenemos que
reservar el espacio de memoria por medio de la instrucción new;
Algoritmo de inserción
• Crear el nuevo nodo
• Asignar la información al
campo correspondiente
• Crear circularidad en campo
siguiente
• Crear circularidad en campo
anterior
• Asignar nodo cola
ESTRUCTURA DE DATOS
ALGORITMO DE INSERCIÓN DE NODOS AL INICIO DE LA LISTA
• Reservar memoria y crear nuevo
nodo.
• Asignar datos al campo
correspondiente.
• Crear circularidad del odo nuevo
con nodo inicio.
• Crear circularidad del nodo
inicio con nodo nuevo.
• Encadenar nodo cola con nodo
nuevo.
• Encadenar nodo nuevo con
nodo cola.
• Convertir nodo nuevo en nodo
inicio.
ESTRUCTURADEDATOS
• Reservar memoria y crear
nuevo nodo
• Asignar al nodo actual datos
• Encadenar nodo nuevo con
nodo cola actual
• Encadenar nodo cola actual
con nodo nuevo
• Crear circularidad del nodo
nuevo con el inicio
• Crear circularidad del inicio
con nodo nuevo
• Convertir nodo nuevo en
nodo cola
ALGORITMO DE INSERCIÓN DE NODOS AL FINAL O NODO COLA.ESTRUCTURADEDATOS
ALGORITMO PARA RECORRER LA LISTA DESDE EL INICIO
Igualar nodo de trabajo a nodo cabeza
MIENTRAS SEA VERDADERO
Imprimir datos del nodo
Nodo de trabajo = siguiente nodo
Si nodo de trabajo es igual a nodo inicio salir
FIN-MIENTRAS
ESTRUCTURA DE DATOS
ELIMINAR UN NODO DE LA LISTA
El algoritmo debe tomar en cuenta todos los
momentos en que puede eliminarse un
nodo, ya se a al inicio, al final, o un nodo
intermedio de la lista.
ESTRUCTURADEDATOS
• Ejercicio: Realizar el programa completo con listas enlazadas doble-circular
incluyendo los campos numero de vendedor y total de ventas del mes.
 Debe incluir menú de opciones;
 Debe incluir módulo de captura de Nodo de Inicio o Nodo Cabeza;
 Debe poder capturar Nodo Subsecuente o Nodo Cola;
 Debe poder insertar un nuevo Nodo Cabeza;
 Debe poder eliminar un nodo seleccionado;
 Debe incluir un recorrido desde el Nodo Cabeza hasta el Nodo Cola
mostrando el promedio de ventas de todos los vendedores en la lista.
• Entregar el programa
ESTRUCTURA DE DATOS
Bibliografía
• Joyanes, Zahonero. Estructura de Datos en C++. McGraw Hill. Madrid, España.
2007. ISBN: 978-84-481-5645-9.
ESTRUCTURA DE DATOS

Más contenido relacionado

La actualidad más candente

Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesJosé Antonio Sandoval Acosta
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de DatosDARKGIRL93
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
Insertar elementos en una cola
Insertar elementos en una colaInsertar elementos en una cola
Insertar elementos en una colajeffersoncenteno
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoJosé Antonio Sandoval Acosta
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosJosé Antonio Sandoval Acosta
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura linealesEnrique2194
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 

La actualidad más candente (20)

Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras Lineales
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Insertar elementos en una cola
Insertar elementos en una colaInsertar elementos en una cola
Insertar elementos en una cola
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Estructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II RecursividadEstructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II Recursividad
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura lineales
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Presentacion pilas lista y colas
Presentacion pilas lista y colas  Presentacion pilas lista y colas
Presentacion pilas lista y colas
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 

Similar a Estructura de datos - Unidad 3 Estructuras Lineales (POO)

Estructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras LinealesEstructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras LinealesJosé Antonio Sandoval Acosta
 
Presentacion Lista, Cola y Pila
Presentacion Lista, Cola y PilaPresentacion Lista, Cola y Pila
Presentacion Lista, Cola y Pilathemvp16
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datoscharlezgt
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrbviela6
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrbviela6
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrbviela6
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrbviela6
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasElvis Perez
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colasjorgeluis0317
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Edward Mejia Gomez
 
Sesion n°1 estructura de datos
Sesion n°1 estructura de datosSesion n°1 estructura de datos
Sesion n°1 estructura de datosJosé Braganza
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colasiventura26
 
Unidad 3 estructuras lineales
Unidad 3 estructuras linealesUnidad 3 estructuras lineales
Unidad 3 estructuras linealesUrban Skate House
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 

Similar a Estructura de datos - Unidad 3 Estructuras Lineales (POO) (20)

Estructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras LinealesEstructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras Lineales
 
Presentacion Lista, Cola y Pila
Presentacion Lista, Cola y PilaPresentacion Lista, Cola y Pila
Presentacion Lista, Cola y Pila
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 
Listas,pilas&colas yorka
Listas,pilas&colas yorkaListas,pilas&colas yorka
Listas,pilas&colas yorka
 
Sesion n°1 estructura de datos
Sesion n°1 estructura de datosSesion n°1 estructura de datos
Sesion n°1 estructura de datos
 
Pilas .pptx
Pilas .pptxPilas .pptx
Pilas .pptx
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Unidad 3 estructuras lineales
Unidad 3 estructuras linealesUnidad 3 estructuras lineales
Unidad 3 estructuras lineales
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 

Más de José Antonio Sandoval Acosta

Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosJosé Antonio Sandoval Acosta
 

Más de José Antonio Sandoval Acosta (20)

Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptx
 
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptxUNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
 
croquis de aulas UAIM topolobampo FEB 2024
croquis de aulas UAIM topolobampo  FEB 2024croquis de aulas UAIM topolobampo  FEB 2024
croquis de aulas UAIM topolobampo FEB 2024
 
Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujo
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Manual de prácticas y antología para POO
Manual de prácticas y antología para  POOManual de prácticas y antología para  POO
Manual de prácticas y antología para POO
 
Aplicaciones móviles intro.
Aplicaciones móviles intro.Aplicaciones móviles intro.
Aplicaciones móviles intro.
 
Economia
EconomiaEconomia
Economia
 
ISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptxISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptx
 
Plantilla presentación.pptx
Plantilla presentación.pptxPlantilla presentación.pptx
Plantilla presentación.pptx
 
kitchenham.pptx
kitchenham.pptxkitchenham.pptx
kitchenham.pptx
 
Diagrama de Casos de Uso UML
Diagrama de Casos de Uso UMLDiagrama de Casos de Uso UML
Diagrama de Casos de Uso UML
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
 
Tema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdfTema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdf
 
Tema 1 - Intro.pdf
Tema 1 - Intro.pdfTema 1 - Intro.pdf
Tema 1 - Intro.pdf
 

Último

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Uso y Manejo de Extintores Lucha contra incendios
Uso y Manejo de Extintores Lucha contra incendiosUso y Manejo de Extintores Lucha contra incendios
Uso y Manejo de Extintores Lucha contra incendioseduardochavezg1
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptxJhordanGonzalo
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfAdelaHerrera9
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfPPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfZamiertCruzSuyo
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 

Último (20)

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Uso y Manejo de Extintores Lucha contra incendios
Uso y Manejo de Extintores Lucha contra incendiosUso y Manejo de Extintores Lucha contra incendios
Uso y Manejo de Extintores Lucha contra incendios
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfPPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 

Estructura de datos - Unidad 3 Estructuras Lineales (POO)

  • 1. Instituto Tecnológico Superior de Guasave Ingeniería en Sistemas Computacionales Estructura de Datos Unidad III: Estructuras Lineales Mtro. José Antonio Sandoval Acosta Retícula ISIC-2010-224: Programa: AED-1026/2016 Itsguasave.edu.mx
  • 2. Competencia de la Unidad • Comprende y aplica estructuras de datos lineales para solución de problemas. ESTRUCTURA DE DATOS
  • 3. Estructuras Lineales • En esta unidad se comienza el estudio de las estructuras de datos dinámicas. Al contrario que las estructuras de datos estáticas (arrays) en las que su tamaño en memoria se establece durante la compilación y permanece inalterable durante la ejecución del programa, las estructuras de datos dinámicas crecen y se contraen a medida que se ejecuta el programa, por lo que la cantidad de memoria que requieren para funcionar es muy variable. • Las estructuras lineales de elementos homogéneos implementadas con arrays necesitan fijar por adelantado el espacio a ocupar en memoria, de modo que cuando se desea añadir un nuevo elemento, que rebase el tamaño prefijado, no será posible sin que se produzca un error en tiempo de ejecución. Esto hace ineficiente el uso de los arrays en algunas aplicaciones. ESTRUCTURA DE DATOS
  • 5. PILAS PILA: Es un conjunto de elementos que solo pueden insertarse y eliminarse por un extremo. Se trata de una estructura de datos de acceso restrictivo a sus elementos. Un ejemplo de pila es una torre de discos compactos, en la cual los discos se insertan y se extraen por el mismo extremo. ESTRUCTURA DE DATOS
  • 6. • En la computación estas estructuras suelen ser fundamentales. La recursividad se simula en un computador con la ayuda de una pila. Asimismo muchos algoritmos emplean las pilas como estructura de datos fundamental, por ejemplo para mantener una lista de tareas pendientes que se van acumulando. • Las pilas ofrecen dos operaciones fundamentales, que son apilar y desapilar sobre la cima. El uso que se les de a las pilas es independiente de su implementación interna. Es decir, se hace un encapsulamiento. Por eso se considera a la pila como un tipo abstracto de datos. • Es una estructura de tipo LIFO (Last In First Out), es decir, último en entrar, primero en salir. ESTRUCTURA DE DATOS
  • 7. ELEMENTOS DE UNA PILA • Tope o cima: Indica el último elemento insertado en la pila. • Máximo: Se refiere al número de elementos que puede contener la pila. ESTRUCTURA DE DATOS
  • 8. • Pilas con Arreglos: Representar pilas usando arreglos es relativamente más sencillo que usando listas enlazadas, el único problema que existe es la limitante de espacio en memoria, ya que al definir un tamaño máximo ya no es posible insertar más elementos. ESTRUCTURA DE DATOS
  • 9. • Pilas con Listas enlazadas: Son llamadas también estructuras dinámicas, ya que el espacio en memoria se crea hasta que se inserta el elemento. ESTRUCTURA DE DATOS
  • 10. OPERACIONES CON PILAS Operaciones Auxiliares con PILAS • Pila llena (si el tope == Máximo-1) • Pila vacía (si tope == -1) • Recorrer pila (desde elemento 0 hasta tope) Eliminar un elementoInsertar un elemento ESTRUCTURA DE DATOS
  • 11. Estatus de las PILAS ESTRUCTURA DE DATOS
  • 12. TRABAJANDO CON PILAS POR MEDIO DE ARRAYS (ESTÁTICAS) Crear las variables necesarias int pila[5]; int maximo=5; Int tope=-1; Int dato=0; Int opc=0; Pila Máximo de elementos Iniciar tope con valor negativo Variable para captura de datos Variable para menú de opciones ESTRUCTURA DE DATOS
  • 13. VERIFICAR SI LA PILA ESTA LLENA Algoritmo FUNCION boolena llena() SI (tope == maximo – 1) regresar verdadero SINO regresar falso FINSI FINFUNCION ESTRUCTURA DE DATOS
  • 14. VERIFICAR SI LA PILA ESTA VACIA Algoritmo FUNCION boolena vacia() SI (tope == – 1) regresar verdadero SINO regresar falso FINSI FINFUNCION ESTRUCTURA DE DATOS
  • 15. INSERTAR ELEMENTO EN LA PILA Algoritmo MODULO insertar() { SI LA PILA ESTA LLENA MOSTRAR “Pila llena” SINO CAPTURAR ELEMENTO INCREMENTAR tope EN 1 pila[tope]=ELEMENTO; FINSI FINMODULO ESTRUCTURA DE DATOS
  • 16. ELIMINAR ELEMENTO EN LA PILA Algoritmo MODULO eliminar() { SI LA PILA ESTA VACIA MOSTRAR “Pila Vacia” SINO MOSTRAR CONTENIDO ELIMINAR ELEMENTO DECREMENTAR TOPE EN 1 FINSI FINMODULO ESTRUCTURA DE DATOS
  • 17. RECORRIDO DE UNA PILA Algoritmo MODULO recorrer() { DECLARAR var de trabajo SI LA PILA ESTA VACIA MOSTRAR “Pila Vacia” SINO MIENTRAS var<=tope MOSTRAR CONTENIDO INCREMENTAR var en 1 FINMIENTRAS FINSI FINMODULO ESTRUCTURA DE DATOS
  • 18. • Ejercicio: Desarrolle el programa correspondiente a la PILA que se ha visto en clase creando un menú que contemple las siguientes opciones: 1. Pila llena 2. Pila vacía 3. Insertar 4. Eliminar 5. Recorrido 6. Terminar • Entregar el programa en código para revisión ESTRUCTURA DE DATOS
  • 20. Definición de COLAS Una COLA es un conjunto homogéneo de elementos, del cual pueden suprimirse elementos sólo desde un extremo llamado parte delantera, asimismo, sólo pueden agregarse elementos en el extremo contrario llamado parte posterior. • El primer elemento en ser agregado a una COLA es el primer elemento en ser eliminado. • Por esta razón una COLA se denomina FIFO (First In-First Out), que es justo el concepto contrario a una PILA o LIFO (Last In-First Out). ESTRUCTURA DE DATOS
  • 21. COLAS DINÁMICAS CON NODOS Parte Delantera o Salida Parte Posterior o Entrada ESTRUCTURA DE DATOS
  • 22. COLAS ESTÁTICAS CON ARRAYS Parte Posterior o Entrada Parte Delantera o Salida Operaciones Auxiliares con COLAS • COLA llena (si el final == Máximo-1) • COLA vacía (si final == -1) • Recorrer COLA (desde elemento 0 hasta final) ESTRUCTURA DE DATOS
  • 23. TRABAJANDO CON COLAS ESTÁTICAS • Una cola estática utiliza un arreglo con un número limitado de elementos en el mismo, dicho arreglo requiere de una constante que controle el máximo de elementos que pueden ser cargados a la cola, y de una variable que controle el elemento final de la cola (último en ser insertado). • Declaración de las variables de la COLA estática int cola[5]; int final = -1; int maximo = 5; COLA Último elemento Máximo de elementos ESTRUCTURA DE DATOS
  • 24. ALGORITMO PARA DETERMINAR SI LA COLA ESTÁ LLENA FUNCION BOLEANA llena () SI (final >= maximo - 1 ) ENTONCES REGRESAR verdadero SINO REGRESAR falso FINSI FINFUNCION ALGORITMO ESTRUCTURA DE DATOS
  • 25. ALGORITMO PARA DETERMINAR SI LA COLA ESTÁ VACIA FUNCION BOLEANA vacia () SI (final < 0) ENTONCES REGRESAR verdadero SINO REGRESAR falso FINSI FINFUNCION ALGORITMO ESTRUCTURA DE DATOS
  • 26. ALGORITMO PARA INSERTAR ELEMENTO EN LA COLA MODULO insertar(DATO) SI (llena) ENTONCES IMPRIME “cola llena” SINO incrementar final cola[final]=DATO FINSI FINMODULO ALGORITMO ESTRUCTURA DE DATOS
  • 27. ALGORITMO PARA ELIMINAR ELEMENTO EN LA COLA MODULO eliminar () SI (vacia) ENTONCES IMPRIME “cola vacia” SINO FOR (J=0, J<máximo, j++) cola[j]=cola[j+1] FINFOR FINSI DECREMENTAR final FINMODULO ALGORITMO ESTRUCTURA DE DATOS
  • 28. ALGORITMO PARA HACER RECORRIDO DE COLA MODULO recorrer () SI (vacia) ENTONCES IMPRIME “cola vacia” SINO FOR (J=0, J<=final, j++) imprime cola[j] FINFOR FINSI FINMODULO ALGORITMO ESTRUCTURA DE DATOS
  • 29. • Ejercicio: Desarrolle el programa correspondiente a la COLA que se ha visto en clase creando un menú que contemple las siguientes opciones: 1. Cola llena 2. Cola vacía 3. Insertar 4. Eliminar 5. Recorrido 6. Salir • Nota: Cada vez que se desee eliminar un elemento debe verificarse la cantidad que se desea eliminar: si es menor al valor del elemento en la parte delantera de la cola deberá restarse pero sin eliminar el elemento; si es mayor debe eliminarse y el faltante restarlo del siguiente elemento en la cola a manera de un inventario de almacén. ESTRUCTURA DE DATOS
  • 31. • Una lista enlazada es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace”. • La idea básica consiste en construir una lista cuyos elementos, llamados nodos, se componen de dos partes o campos:  La primera parte contiene la información y es, por consiguiente, un valor de un tipo genérico (denominado Dato, TipoElemento, Info, etc.);  La segunda parte es un enlace que apunta al siguiente nodo de la lista. ESTRUCTURA DE DATOS
  • 32. • La representación gráfica más extendida es aquella que utiliza una caja con dos secciones en su interior. En la primera sección se encuentra el elemento o valor a almacenar y en la segunda sección el enlace o puntero, representado mediante una flecha que sale de la caja y apunta al siguiente nodo. ESTRUCTURA DE DATOS
  • 33. Clasificación de las listas enlazadas LISTAS SIMPLEMENTE ENLAZADAS: Cada nodo (elemento) contiene un único enlace que conecta ese nodo al nodo siguiente o nodo sucesor. La lista es eficiente en recorridos directos (“adelante”). ESTRUCTURA DE DATOS
  • 34. Clasificación de las listas enlazadas LISTAS DOBLEMENTE ENLAZADAS: Cada nodo contiene dos enlaces, uno a su nodo predecesor y el otro a su nodo sucesor. La lista es eficiente tanto en recorrido directo (“adelante”) como en recorrido inverso (“atrás”). ESTRUCTURA DE DATOS
  • 35. Clasificación de las listas enlazadas LISTA CIRCULAR SIMPLEMENTE ENLAZADA: Una lista simplemente enlazada en la que el último elemento (cola) se enlaza al primer elemento (cabeza) de tal modo que la lista puede ser recorrida de modo circular (“en anillo”). ESTRUCTURA DE DATOS
  • 36. Clasificación de las listas enlazadas LISTA CIRCULAR DOBLEMENTE ENLAZADA: Una lista doblemente enlazada en la que el último elemento se enlaza al primer elemento y viceversa. Esta lista se puede recorrer de modo circular (en anillo) tanto en dirección directa (“hacia adelante”) como inversa (“hacia atrás”). ESTRUCTURA DE DATOS
  • 37. TRABAJANDO CON LISTAS SIMPLES POR MEDIO DE CLASES • Para trabajar con una lista enlazada debemos crear una clase que refleje la información contenida en cada nodo de la misma y que contenga una variable de tipo apuntador que conecte cada nodo con el nodo siguiente. La variable tipo apuntador se define con un asterisco y debe ser del mismo tipo de la clase declarada. ESTRUCTURA DE DATOS
  • 38. • Después debemos definir una segunda clase que contendrá todos los métodos para insertar, eliminar y recorrer la lista. ESTRUCTURA DE DATOS Las variables con un asterisco indican que son apuntadores, después en los métodos serán creados los objetos de memoria.
  • 39. INSERTAR PRIMER NODO DE LA LISTA VACIA Cando declaramos la variable NI utilizando un asterisco (*NI) lo que hicimos fue indicar que se trata de un apuntador, ahora corresponde crear el nodo en memoria por medio de la instrucción new, por lo que ya no es necesario declarar de nuevo o utilizar el asterisco. Cabe mencionar que cuando creas el nodo nuevo el campo sig es igualado a NULL en el constructor: Algoritmo de inserción Crear el nuevo nodo Asignar la información al campo correspondiente Asignar nodo cola ESTRUCTURA DE DATOS
  • 40. • Reservar memoria y crear nuevo nodo • Asignar información al nuevo nodo • Encadenar nuevo nodo con el nodo inicio actual • Convertir nuevo nodo en nodo inicio ESTRUCTURA DE DATOS INSERTAR NODO AL INICIO CUANDO LA LISTA YA TIENE ELEMENTOS
  • 41. ALGORITMO DE INSERCIÓN DE NODOS SUBSECUENTES EN LA LISTA (INCLUYENDO NODO COLA O “TAIL”). • Reservar memoria y crear nuevo nodo • Asignar datos al nuevo nodo • Convertir el nodo nuevo en nodo cola ESTRUCTURA DE DATOS
  • 42. RECORRER LA LISTA DESDE EL INICIO Igualar nodo de trabajo a nodo cabeza MIENTRAS sea VERDADERO Imprimir datos del nodo Nodo de trabajo = siguiente nodo SI nodo de trabajo es NULL salir FIN-MIENTRAS ESTRUCTURA DE DATOS
  • 43. ALGORITMO DE INSERCIÓN DE NODOS AL INICIO DE LA LISTA O NODO CABEZA. SI cabeza==NULL crear nuevo nodo inicial asignar datos al campo correspondiente asignar NULL a la variable apuntador SINO reservar memoria y crear nuevo nodo asignar datos al campo correspondiente enlazar el nodo actual con el nodo cabeza igualar nodo cabeza al nodo actual FINSI ESTRUCTURA DE DATOS
  • 44. ELIMINAR UN NODO DE LA LISTA • Para eliminar un nodo de la lista debemos verificar primero si se trata del nodo cabeza o de un nodo subsecuente, o del nodo cola. • Para realizar esta eliminación son necesarios 3 variables auxiliares tipo nodo: auxiliar, actual, anterior • A continuación se presenta el algoritmo para hacer dicha verificación y la posterior eliminación; ESTRUCTURA DE DATOS
  • 46. • Ejercicio: Realizar el programa completo con listas enlazadas simples.  Debe incluir menú de opciones;  Debe incluir módulo de captura de Nodo de Inicio o Nodo Cabeza;  Debe poder capturar Nodo Cola;  Debe poder insertar un nuevo Nodo Cabeza;  Debe poder eliminar un nodo seleccionado;  Debe incluir un recorrido desde el Nodo Cabeza hasta el Nodo Cola mostrando el promedio los elementos contenidos y el número de nodos de la lista; • Entregar el programa ESTRUCTURA DE DATOS
  • 47. TRABAJANDO CON LISTAS DE DOBLE ENLACE-CIRCULARES CON CLASES • Al utilizar clases para crear los nodos se elimina el uso “struct” y se hace uso de la POO en todos sus aspectos. Se crea una clase que contiene únicamente las variables del NODO, también debemos crear el respectivo constructor. ESTRUCTURA DE DATOS
  • 48. Creamos una clase LISTA con sus métodos y constructor, también agregamos la declaración de los nodos NI (inicio) y NT (cola) ESTRUCTURA DE DATOS
  • 49. INSERTAR NODO INICIAL O CABECERA DE LA LISTA • Cuando declaramos la variable NI utilizando un asterisco (*NI) lo que hicimos fue indicar que se trata de un apuntador, por lo que ahora solo tenemos que reservar el espacio de memoria por medio de la instrucción new; Algoritmo de inserción • Crear el nuevo nodo • Asignar la información al campo correspondiente • Crear circularidad en campo siguiente • Crear circularidad en campo anterior • Asignar nodo cola ESTRUCTURA DE DATOS
  • 50. ALGORITMO DE INSERCIÓN DE NODOS AL INICIO DE LA LISTA • Reservar memoria y crear nuevo nodo. • Asignar datos al campo correspondiente. • Crear circularidad del odo nuevo con nodo inicio. • Crear circularidad del nodo inicio con nodo nuevo. • Encadenar nodo cola con nodo nuevo. • Encadenar nodo nuevo con nodo cola. • Convertir nodo nuevo en nodo inicio. ESTRUCTURADEDATOS
  • 51. • Reservar memoria y crear nuevo nodo • Asignar al nodo actual datos • Encadenar nodo nuevo con nodo cola actual • Encadenar nodo cola actual con nodo nuevo • Crear circularidad del nodo nuevo con el inicio • Crear circularidad del inicio con nodo nuevo • Convertir nodo nuevo en nodo cola ALGORITMO DE INSERCIÓN DE NODOS AL FINAL O NODO COLA.ESTRUCTURADEDATOS
  • 52. ALGORITMO PARA RECORRER LA LISTA DESDE EL INICIO Igualar nodo de trabajo a nodo cabeza MIENTRAS SEA VERDADERO Imprimir datos del nodo Nodo de trabajo = siguiente nodo Si nodo de trabajo es igual a nodo inicio salir FIN-MIENTRAS ESTRUCTURA DE DATOS
  • 53. ELIMINAR UN NODO DE LA LISTA El algoritmo debe tomar en cuenta todos los momentos en que puede eliminarse un nodo, ya se a al inicio, al final, o un nodo intermedio de la lista. ESTRUCTURADEDATOS
  • 54. • Ejercicio: Realizar el programa completo con listas enlazadas doble-circular incluyendo los campos numero de vendedor y total de ventas del mes.  Debe incluir menú de opciones;  Debe incluir módulo de captura de Nodo de Inicio o Nodo Cabeza;  Debe poder capturar Nodo Subsecuente o Nodo Cola;  Debe poder insertar un nuevo Nodo Cabeza;  Debe poder eliminar un nodo seleccionado;  Debe incluir un recorrido desde el Nodo Cabeza hasta el Nodo Cola mostrando el promedio de ventas de todos los vendedores en la lista. • Entregar el programa ESTRUCTURA DE DATOS
  • 55. Bibliografía • Joyanes, Zahonero. Estructura de Datos en C++. McGraw Hill. Madrid, España. 2007. ISBN: 978-84-481-5645-9. ESTRUCTURA DE DATOS