SlideShare una empresa de Scribd logo
1 de 5
Universidad Nacional de Lomas de Zamora
Apunte teórico: Técnicas de Programación –
Pseudocódigo: Estructuras de datos.
Facultad de Ingeniería
Curso 111 Mil
Profesor Alejandro Canosa
Alejandro Canosa, Universidad Nacional de Lomas de Zamora
Curso 111Mil, 2017
2
Recursividad:
Un algoritmo recursivo es un algoritmo que va a ir dividiendo el problema y lo va a ir resolviendo
hasta la partícula más pequeña, por ejemplo, una función de factorial, sabemos que:
𝑋! = 𝑋 ∗ (𝑋 − 1) ∗ (𝑋 − 2) … ∗ 1
𝑋! = 𝑋 ∗ (𝑋 − 1)!
ENTERO factorial(ENTERO numero)
Si (numero == 1) entonces
DEVOLVER 1
SINO
DEVOLVER numero * factorial(numero-1) //multiplico el numero al factorial del número –
//1, véase la propiedad de arriba
En el algoritmo escrito previamente la función va a empezar por el numero N que se le pase, si N
es distinto de 1, va a multiplicar el valor que devuelva la función factorial pero con N – 1, y así va a
pasar hasta que se llegue al 1, cuando se llega al 1, se devuelve 1 y así se van devolviendo todos
los valores hasta llegar a la primer función invocada.
El proceso se ve ilustrado de la siguiente manera:
Es como bajar y subir una escalera, empiezo desde mi valor inicial y voy invocando la función con
su decremento de 1 en 1 hasta llegar al valor 1, de ahí devuelvo 1 y voy subiendo la escalera y
devolviendo los valores hasta llegar al primer valor usado que es N.
Se podría usar otro ejemplo con las potencias (no contempla todos los casos posibles, es solo para
potencias enteras y positivas y además mayores a 0):
ENTERO potencia(ENTERO número, ENTERO exponente)
Alejandro Canosa, Universidad Nacional de Lomas de Zamora
Curso 111Mil, 2017
3
SI (exponente == 1)
DEVOLVER número //devuelvo el numero ya que se eleva a la 1
SINO
DEVOLVER número * potencia(número, exponente – 1)
Ejemplo: 23
= 2 * 2* 2
ESTRUCTURAS DE DATOS
LISTAS:
Las listas son colecciones abstractas de un tipo de datos, parecidos o iguales a los vectores según
sea el caso (de hecho un vector es una lista si es dinámico, es decir, si puede cambiar su longitud)
Hay varios tipos de listas:
 Listas enlazadas de forma simple: Cada nodo o elemento de la lista contiene un puntero
(dirección de memoria) al nodo siguiente (si es el último no tiene puntero)
 Listas enlazadas de forma doble: Cada nodo o elemento tiene un puntero tanto para el
nodo siguiente como para el nodo previo.
 Sets: que no contienen datos duplicados y no están ordenados.
 ArrayList: es un array implementado como lista el cual tiene una longitud variable y puede
usar los métodos que usa una lista (La lista está definida en la clase List en Java y ArrayList
puede usar los métodos y operaciones de esta clase, en el módulo de Orientación a
Objetos se entrará más en detalle con esto).
 Largo etcétera.
Operaciones:
 Insertar al final (append en inglés)
 Eliminar elemento
 Insertar en un índice especifico (cuidado con usar un índice fuera de la lista)
 Insertar entre 2 elementos
 Verificar si está vacía.
Cuando se declara una lista se define el tipo de dato que contendrá (solo puede contener UN tipo
de dato, como el array) y el nombre de la misma.
Lista <ENTERO> números //sintaxis de pseudocódigo
List <Integer> números = new ArrayList<Integer>(); //Lista de tipo ArrayList de enteros (JAVA)
Alejandro Canosa, Universidad Nacional de Lomas de Zamora
Curso 111Mil, 2017
4
Otra manera de recorrer la lista, además de usar los bucles WHILE, DO WHILE y FOR (Mientras,
hacer mientras y para) se puede usar FOR EACH (Para cada)
PARA CADA:
Es un bucle en el cual se recorren TODOS los elementos de un vector o lista determinado, sin
definir una condición o hasta que valor se quiere llegar, simplemente recorre en totalidad las
estructuras mencionadas (NOTA: no se tiene que borrar ningún elemento mientras se recorre la
lista). La sintaxis el PARA CADA es la siguiente:
PARA CADA (TIPO DATO) (NOMBRE VARIABLE TEMPORAL) EN (NOMBRE LISTA/VECTOR)
//acá dentro se escriben las instrucciones del bucle
FIN PARA CADA
En PARA CADA también se usa una variable temporal la cual es el elemento actual que estoy
recorriendo, este debe ser del mismo tipo de la lista (si la lista es de enteros, la variable tiene que
ser entera, a menos que se haga lo que se llama “castear”). Entonces:
LISTA <ENTERO> lista = [1, 2, 3, 4, 5]
PARA CADA ENTERO elemento EN lista
IMPRIMIR(elemento) //se imprime el elemento en el que estoy parado
FIN PARA CADA
//acá la variable elemento no existe más ya que fue definida solamente para el bucle.
COLAS:
La cola es una estructura de datos de tipo FIFO (First in First out) la cual almacena los datos de
manera que el primero que ingresamos (el dato más antiguo) sea el primero en salir, a diferencia
de la lista y los vectores, la cola no puede ser recorrida, solo puede accederse a 1 elemento a la
vez. La cola tiene las siguientes operaciones:
 Encolar (agrego elemento a la cola)
 Desencolar (obtengo primer elemento a la cola. NOTA: una vez que desencolo, el
elemento ya no está más en la cola)
 Frente (obtengo información del elemento que esta primero pero no lo saco de la pila)
Ejemplos de cola en la vida real pueden ser cola del banco, una cola de pedidos en un delivery o
restaurante, etc.
Alejandro Canosa, Universidad Nacional de Lomas de Zamora
Curso 111Mil, 2017
5
PILAS:
La pila es una estructura de datos de tipo LIFO (Last in First out), es decir, el último dato que se
ingresa (el más reciente) es el primero en salir. Al igual que la cola solo se accede a 1 elemento por
vez y este elemento deja de estar en la Pila una vez que se accede al mismo. La pila tiene las
siguientes operaciones:
 Push (ingresa un elemento en la pila)
 Pop (obtiene el último elemento ingresado, una vez que se obtiene, ya no está dentro de
la pila)
 Top (obtiene información del último elemento ingresado pero no lo quita de la pila)
 Vacía (devuelve Verdadero si la pila esta vacía)
Un ejemplo simple es una pila de libros, yo no puedo sacar el libro de abajo sin que se caigan los
de arriba (ya que están apoyados en el de abajo), por ende saco los libros de arriba primero (los
últimos que se apilaron) hasta llegar al libro de abajo.
SINTAXIS PARA PILAS Y COLAS:
PILA <TIPO> NOMBRE
COLA <TIPO> NOMBRE //las pilas y colas siempre se crean vacías.
EJERCICIOS:
1. Crear una Lista de texto y rellenarla con 5 nombres, recorrerla de manera secuencial
imprimiendo los nombres
2. Crear una cola e ingresar los números (1, 2, 6 ,8 , 24) en ese orden, imprimir cada uno de
los elementos de la cola mientras se recorre
3. Crear una pila e ingresar los números (13, 28, 2, 3, 1) en ese orden, imprimir cada uno de
los elemento se la pila mientras se recorre.
4. Desencolar todos los elementos de una cola, si uno de estos elementos es 0, terminar de
desencolar ahí y dejar los datos restantes de la cola (Nota: el 0 tiene que seguir en la cola).
5. Eliminar todos los elementos que tengan el número 0 en una lista usando PARA CADA.
6. Escribir una función recursiva que a partir de un número dado se haga sumatoria desde
ese número hasta el 1. Ejemplo: si ingreso el 5, hacer 5 + 4 + 3 + 2 + 1.

Más contenido relacionado

La actualidad más candente

Estructuras dinamicas ppt
Estructuras dinamicas pptEstructuras dinamicas ppt
Estructuras dinamicas pptAby Castillo
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337CJrosario2
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasknowallrpa
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasrehoscript
 
Estructura de datos_Listas encadenadas presentacion
Estructura de datos_Listas encadenadas  presentacionEstructura de datos_Listas encadenadas  presentacion
Estructura de datos_Listas encadenadas presentacionGabriely Peña
 
Lissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette I. Pimentel S
 
Presentacion de Listas, Pilas y Colas
Presentacion de Listas, Pilas y ColasPresentacion de Listas, Pilas y Colas
Presentacion de Listas, Pilas y ColasKate Pros
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicasPatriciaU
 

La actualidad más candente (20)

Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colas
 
Tad Colas
Tad ColasTad Colas
Tad Colas
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Listas
ListasListas
Listas
 
Listas
ListasListas
Listas
 
Estructuras dinamicas ppt
Estructuras dinamicas pptEstructuras dinamicas ppt
Estructuras dinamicas ppt
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicas
 
Estructura de datos_Listas encadenadas presentacion
Estructura de datos_Listas encadenadas  presentacionEstructura de datos_Listas encadenadas  presentacion
Estructura de datos_Listas encadenadas presentacion
 
Unidad 3 Listas Java
Unidad 3 Listas JavaUnidad 3 Listas Java
Unidad 3 Listas Java
 
Lissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colas
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Presentacion de Listas, Pilas y Colas
Presentacion de Listas, Pilas y ColasPresentacion de Listas, Pilas y Colas
Presentacion de Listas, Pilas y Colas
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicas
 
Lista simple
Lista simpleLista simple
Lista simple
 
Presentacion pilas lista y colas
Presentacion pilas lista y colas  Presentacion pilas lista y colas
Presentacion pilas lista y colas
 

Similar a Pseudocódigo apunte estructuras de datos

UNIDAD II
UNIDAD IIUNIDAD II
UNIDAD IIAna
 
Scala collections
Scala collectionsScala collections
Scala collectionscrissbal94
 
jhon anton 31.184.245 (declaraciones Listas).pdf
jhon anton 31.184.245 (declaraciones Listas).pdfjhon anton 31.184.245 (declaraciones Listas).pdf
jhon anton 31.184.245 (declaraciones Listas).pdfjhonanton789
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datoscharlezgt
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasHuascar Génere
 
Estructura De Datos Unidad Ii
Estructura De Datos Unidad IiEstructura De Datos Unidad Ii
Estructura De Datos Unidad Iidanyyel123
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colasiventura26
 
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
 
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
 
Apuntes Nº4 (TDA Estructuras Lineales).pptx
Apuntes Nº4 (TDA Estructuras Lineales).pptxApuntes Nº4 (TDA Estructuras Lineales).pptx
Apuntes Nº4 (TDA Estructuras Lineales).pptxCamilaCabrera47
 

Similar a Pseudocódigo apunte estructuras de datos (20)

UNIDAD II
UNIDAD IIUNIDAD II
UNIDAD II
 
Saiymari colas, filas y nos e que otra cosa
Saiymari colas, filas y nos e que otra cosaSaiymari colas, filas y nos e que otra cosa
Saiymari colas, filas y nos e que otra cosa
 
Colas, filas
Colas, filasColas, filas
Colas, filas
 
Scala collections
Scala collectionsScala collections
Scala collections
 
Unidad _ II
Unidad _ IIUnidad _ II
Unidad _ II
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colas
 
jhon anton 31.184.245 (declaraciones Listas).pdf
jhon anton 31.184.245 (declaraciones Listas).pdfjhon anton 31.184.245 (declaraciones Listas).pdf
jhon anton 31.184.245 (declaraciones Listas).pdf
 
Darwin rodriguez 12-0861_pilasy_colas
Darwin rodriguez 12-0861_pilasy_colasDarwin rodriguez 12-0861_pilasy_colas
Darwin rodriguez 12-0861_pilasy_colas
 
Solucion taller excel 1
Solucion taller excel 1Solucion taller excel 1
Solucion taller excel 1
 
Dionely torres 11 1150
Dionely torres 11 1150Dionely torres 11 1150
Dionely torres 11 1150
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Estructura De Datos Unidad Ii
Estructura De Datos Unidad IiEstructura De Datos Unidad Ii
Estructura De Datos Unidad Ii
 
Python04
Python04Python04
Python04
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED 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
 
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
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 
C9est lin
C9est linC9est lin
C9est lin
 
Apuntes Nº4 (TDA Estructuras Lineales).pptx
Apuntes Nº4 (TDA Estructuras Lineales).pptxApuntes Nº4 (TDA Estructuras Lineales).pptx
Apuntes Nº4 (TDA Estructuras Lineales).pptx
 

Pseudocódigo apunte estructuras de datos

  • 1. Universidad Nacional de Lomas de Zamora Apunte teórico: Técnicas de Programación – Pseudocódigo: Estructuras de datos. Facultad de Ingeniería Curso 111 Mil Profesor Alejandro Canosa
  • 2. Alejandro Canosa, Universidad Nacional de Lomas de Zamora Curso 111Mil, 2017 2 Recursividad: Un algoritmo recursivo es un algoritmo que va a ir dividiendo el problema y lo va a ir resolviendo hasta la partícula más pequeña, por ejemplo, una función de factorial, sabemos que: 𝑋! = 𝑋 ∗ (𝑋 − 1) ∗ (𝑋 − 2) … ∗ 1 𝑋! = 𝑋 ∗ (𝑋 − 1)! ENTERO factorial(ENTERO numero) Si (numero == 1) entonces DEVOLVER 1 SINO DEVOLVER numero * factorial(numero-1) //multiplico el numero al factorial del número – //1, véase la propiedad de arriba En el algoritmo escrito previamente la función va a empezar por el numero N que se le pase, si N es distinto de 1, va a multiplicar el valor que devuelva la función factorial pero con N – 1, y así va a pasar hasta que se llegue al 1, cuando se llega al 1, se devuelve 1 y así se van devolviendo todos los valores hasta llegar a la primer función invocada. El proceso se ve ilustrado de la siguiente manera: Es como bajar y subir una escalera, empiezo desde mi valor inicial y voy invocando la función con su decremento de 1 en 1 hasta llegar al valor 1, de ahí devuelvo 1 y voy subiendo la escalera y devolviendo los valores hasta llegar al primer valor usado que es N. Se podría usar otro ejemplo con las potencias (no contempla todos los casos posibles, es solo para potencias enteras y positivas y además mayores a 0): ENTERO potencia(ENTERO número, ENTERO exponente)
  • 3. Alejandro Canosa, Universidad Nacional de Lomas de Zamora Curso 111Mil, 2017 3 SI (exponente == 1) DEVOLVER número //devuelvo el numero ya que se eleva a la 1 SINO DEVOLVER número * potencia(número, exponente – 1) Ejemplo: 23 = 2 * 2* 2 ESTRUCTURAS DE DATOS LISTAS: Las listas son colecciones abstractas de un tipo de datos, parecidos o iguales a los vectores según sea el caso (de hecho un vector es una lista si es dinámico, es decir, si puede cambiar su longitud) Hay varios tipos de listas:  Listas enlazadas de forma simple: Cada nodo o elemento de la lista contiene un puntero (dirección de memoria) al nodo siguiente (si es el último no tiene puntero)  Listas enlazadas de forma doble: Cada nodo o elemento tiene un puntero tanto para el nodo siguiente como para el nodo previo.  Sets: que no contienen datos duplicados y no están ordenados.  ArrayList: es un array implementado como lista el cual tiene una longitud variable y puede usar los métodos que usa una lista (La lista está definida en la clase List en Java y ArrayList puede usar los métodos y operaciones de esta clase, en el módulo de Orientación a Objetos se entrará más en detalle con esto).  Largo etcétera. Operaciones:  Insertar al final (append en inglés)  Eliminar elemento  Insertar en un índice especifico (cuidado con usar un índice fuera de la lista)  Insertar entre 2 elementos  Verificar si está vacía. Cuando se declara una lista se define el tipo de dato que contendrá (solo puede contener UN tipo de dato, como el array) y el nombre de la misma. Lista <ENTERO> números //sintaxis de pseudocódigo List <Integer> números = new ArrayList<Integer>(); //Lista de tipo ArrayList de enteros (JAVA)
  • 4. Alejandro Canosa, Universidad Nacional de Lomas de Zamora Curso 111Mil, 2017 4 Otra manera de recorrer la lista, además de usar los bucles WHILE, DO WHILE y FOR (Mientras, hacer mientras y para) se puede usar FOR EACH (Para cada) PARA CADA: Es un bucle en el cual se recorren TODOS los elementos de un vector o lista determinado, sin definir una condición o hasta que valor se quiere llegar, simplemente recorre en totalidad las estructuras mencionadas (NOTA: no se tiene que borrar ningún elemento mientras se recorre la lista). La sintaxis el PARA CADA es la siguiente: PARA CADA (TIPO DATO) (NOMBRE VARIABLE TEMPORAL) EN (NOMBRE LISTA/VECTOR) //acá dentro se escriben las instrucciones del bucle FIN PARA CADA En PARA CADA también se usa una variable temporal la cual es el elemento actual que estoy recorriendo, este debe ser del mismo tipo de la lista (si la lista es de enteros, la variable tiene que ser entera, a menos que se haga lo que se llama “castear”). Entonces: LISTA <ENTERO> lista = [1, 2, 3, 4, 5] PARA CADA ENTERO elemento EN lista IMPRIMIR(elemento) //se imprime el elemento en el que estoy parado FIN PARA CADA //acá la variable elemento no existe más ya que fue definida solamente para el bucle. COLAS: La cola es una estructura de datos de tipo FIFO (First in First out) la cual almacena los datos de manera que el primero que ingresamos (el dato más antiguo) sea el primero en salir, a diferencia de la lista y los vectores, la cola no puede ser recorrida, solo puede accederse a 1 elemento a la vez. La cola tiene las siguientes operaciones:  Encolar (agrego elemento a la cola)  Desencolar (obtengo primer elemento a la cola. NOTA: una vez que desencolo, el elemento ya no está más en la cola)  Frente (obtengo información del elemento que esta primero pero no lo saco de la pila) Ejemplos de cola en la vida real pueden ser cola del banco, una cola de pedidos en un delivery o restaurante, etc.
  • 5. Alejandro Canosa, Universidad Nacional de Lomas de Zamora Curso 111Mil, 2017 5 PILAS: La pila es una estructura de datos de tipo LIFO (Last in First out), es decir, el último dato que se ingresa (el más reciente) es el primero en salir. Al igual que la cola solo se accede a 1 elemento por vez y este elemento deja de estar en la Pila una vez que se accede al mismo. La pila tiene las siguientes operaciones:  Push (ingresa un elemento en la pila)  Pop (obtiene el último elemento ingresado, una vez que se obtiene, ya no está dentro de la pila)  Top (obtiene información del último elemento ingresado pero no lo quita de la pila)  Vacía (devuelve Verdadero si la pila esta vacía) Un ejemplo simple es una pila de libros, yo no puedo sacar el libro de abajo sin que se caigan los de arriba (ya que están apoyados en el de abajo), por ende saco los libros de arriba primero (los últimos que se apilaron) hasta llegar al libro de abajo. SINTAXIS PARA PILAS Y COLAS: PILA <TIPO> NOMBRE COLA <TIPO> NOMBRE //las pilas y colas siempre se crean vacías. EJERCICIOS: 1. Crear una Lista de texto y rellenarla con 5 nombres, recorrerla de manera secuencial imprimiendo los nombres 2. Crear una cola e ingresar los números (1, 2, 6 ,8 , 24) en ese orden, imprimir cada uno de los elementos de la cola mientras se recorre 3. Crear una pila e ingresar los números (13, 28, 2, 3, 1) en ese orden, imprimir cada uno de los elemento se la pila mientras se recorre. 4. Desencolar todos los elementos de una cola, si uno de estos elementos es 0, terminar de desencolar ahí y dejar los datos restantes de la cola (Nota: el 0 tiene que seguir en la cola). 5. Eliminar todos los elementos que tengan el número 0 en una lista usando PARA CADA. 6. Escribir una función recursiva que a partir de un número dado se haga sumatoria desde ese número hasta el 1. Ejemplo: si ingreso el 5, hacer 5 + 4 + 3 + 2 + 1.