SlideShare una empresa de Scribd logo
1 de 21
Aprendiendo Python
Estructuras de Datos
Por Juan Astudillo
TDA: Tipos Abstractos de Datos
Pilas, Colas, Listas por Comprensión
(Stack & Queue)
Data Type List
• list.append(x)
Agrega un elemento al final de la lista; equivalente a: a[len(a):] = [x].
• list.extend(L)
Extiende la lista agregando todos los elementos de la lista dada;
equivalente a a[len(a):] = L.
• list.insert(i, x)
Inserta un ítem a la posición dada. El primer argumento es el índice
del elemento antes del cual se va a insertar, entonces a.insert(0, x)
inserta al frente de la lista, y a.insert(len(a), x) es equivalente a
a.append(x).
Data Type List
• list.remove(x)
Remueve el primer item desde la lista cuyo valor es x. Arroja un
error si no existe tal ítem.
• list.pop([i])
Remueve el item a la posición entregada en la lista, y lo retorna. Si el
índice no es especificado, a.pop() remueve y retorna el ultimo ítem
en la lista. (Los paréntesis cuadrados alrededor de i en el método
denota que el parámetro es opcional).
Data Type List
• list.index(x)
Retorna el índice en la lista del primer ítem cuyo valor es x. Arroja
un error si dicho ítem no está.
• list.count(x)
Retorno el numero de veces que x aparece en la lista.
• list.sort()
Ordena los ítems de la lista.
• list.reverse()
Reversa los elementos de la lista.
Pilas (Stacks)
• Una pila (stack en inglés) es parte de los TDA (Tipos Abstractos de
Datos) es una lista ordenada o estructura de datos en la que el
modo de acceso a sus elementos es de tipo LIFO (del inglés Last In
First Out, último en entrar, primero en salir) que permite almacenar
y recuperar datos.
• Esta estructura TDA se usa en multitud de ocasiones en el área de la
informática debido a su simplicitud y ordenación implícita de la
propia estructura.
Pilas (Stacks)
• En todo momento sólo se tiene acceso a la parte superior de la pila,
es decir, al último objeto apilado (denominado TOS, Top of Stack en
inglés ( es español a veces llamado Tope)). La operación sacar
permite la obtención de este elemento, que es retirado de la pila
permitiendo el acceso al siguiente (apilado con anterioridad), que
pasa a ser el nuevo TOS.
• Por analogía con objetos cotidianos, una operación apilar equivaldría
a colocar un plato sobre una pila de platos, y una operación retirar a
retirarlo.
Pilas (Stacks)
• Para que se ocupan las Pilas:
-Evaluación de expresiones en notación postfija (notación polaca
inversa).
-Reconocedores sintácticos de lenguajes independientes del contexto
-Implementación de recursividad.
Pilas (Stacks)
Operaciones con Pilas
Una pila cuenta con 2 operaciones imprescindibles: apilar (Push) y
desapilar (Pop), a las que en las implementaciones modernas de las
pilas se suelen añadir más de uso habitual.
Crear: se crea la pila vacía. (constructor)
Tamaño: regresa el numero de elementos de la pila. (size)
Apilar: se añade un elemento a la pila.(push)
Pilas (Stacks)
• Operaciones con Pilas (continuación)
Desapilar (retirar): se elimina el elemento frontal de la pila.(pop)
Cima: devuelve el elemento que esta en la cima de la pila. (top o peek)
Vacía: devuelve cierto si la pila está vacía o falso en caso contrario
(empty).
Pilas (Stacks)
Pilas (Stacks)
Programa en Python que muestra el comportamiento de LIFO
Utlizamos el datatype “List” y algunos métodos para ocuparlo como stack
Type "help", "copyright", "credits" or "license" for more information.
>>> stack = [2,4,5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[2, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack.pop()
4
>>> stack.pop()
2
>>> stack.pop()
Colas (Queue)
•Una cola (también llamada fila) es otro TDA, 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 pop 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.
•Las colas se utilizan en sistemas informáticos, transportes y
operaciones de investigación (entre otros), dónde los objetos, personas
o eventos son tomados como datos que se almacenan y se guardan
mediante colas para su posterior procesamiento.
Este tipo de estructura de datos abstracta se implementa en lenguajes
orientados a objetos mediante clases, en forma de listas enlazadas.
Colas (Queue)
Operaciones Básicas con Colas
•Crear: se crea la cola vacía.
•Encolar (añadir, entrar, insertar): 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ó.
Colas (Queue)
Ejemplo Visual de Cola
Colas (Queue)
>>> from collections import deque
>>> queue = deque(["Erick", "Miguel", "john"])
>>> queue.append("david")
>>> queue.append("hoffmann")
>>> queue.popleft()
>>> queue.popleft()
'Erick'
>>> queue.popleft()
'Miguel'
>>> queue.popleft()
'john'
>>> queue.popleft()
'david'
>>> queue.popleft()
'hoffmann'
>>> queue.popleft()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: pop from an empty deque
Listas por Comprensión (List Comprehensions )
>>> squares = []
>>> for x in range(10):
... squares.append(x**2)
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Las listas por comprensión proporcionan una manera concisa para crear
listas. Las aplicaciones más comunes son para hacer nuevas listas donde
cada elemento es el resultado de algunas operaciones aplicadas a cada
miembro de otra secuencia o repetible, o para crear una sub secuencia
de aquellos elementos que cumplan una determinada condición.
Listas por Comprensión (List Comprehensions )
>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
ejemplo de lista por Comprensión:
>>> combs = []
>>> for x in [1,2,3]:
… for y in [3,1,4]:
… if x != y:
… combs.append((x, y))
...
>>> combs
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
es equivalente a:
Listas por Comprensión (List Comprehensions )
ejemplo de lista por Comprensión:
>>> from math import pi
>>> [str(round(pi, i)) for i in range(1, 6)]
['3.1', '3.14', '3.142', '3.1416', '3.14159']
• Métodos para Pilas (Stack) sobre Stack
(Estos son algunos de los más usados e importantes)
• Push
• Pop
• Peek
• Size
• Get
• Set
• Search
• Print <pila>;
• Métodos para Colas (Queue) sobre LinkedList
• AddFirst
• RemoveLast
• PeekLast => Front
• Size
• Get
• Set
• Print <cola>;
Resumen
Gracias
Python es Marca y Propiedad de Python Software
Foundation. Todos los derechos reservados.
Microsoft Windows y Microsoft Power Point son Marca y
Propiedad de Microsoft Corporation. Todos los derechos
reservados.
Presentación realizada con productos originales Microsoft.

Más contenido relacionado

La actualidad más candente

Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortlinkinpark03
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilasgeova666
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
1.4 software numerico
1.4 software numerico1.4 software numerico
1.4 software numericomorenito9001
 
Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Ana Castro
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
Metodos de ordenamiento 2
Metodos de ordenamiento 2Metodos de ordenamiento 2
Metodos de ordenamiento 2angela montilla
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++compumet sac
 

La actualidad más candente (20)

Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilas
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
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
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
1.4 software numerico
1.4 software numerico1.4 software numerico
1.4 software numerico
 
Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
 
Metodos de ordenamiento 2
Metodos de ordenamiento 2Metodos de ordenamiento 2
Metodos de ordenamiento 2
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
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
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Comandos java
Comandos javaComandos java
Comandos java
 

Similar a Python Pilas y Colas

Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasMaxDLeon
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colasjorgeluis0317
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datoscharlezgt
 
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
 
Lista,pilas y columnas
Lista,pilas y columnasLista,pilas y columnas
Lista,pilas y columnaskety24
 
Listas,pilas y colas
Listas,pilas y colasListas,pilas y colas
Listas,pilas y colasBlackzerox
 
Listas, pilas y colas richard ramos 09-1130
Listas, pilas y colas   richard ramos 09-1130Listas, pilas y colas   richard ramos 09-1130
Listas, pilas y colas richard ramos 09-1130reyarturo16
 
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 colasJose R. Trejo
 
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
 
Estructura de Datos Pilas, Colas y Listas
Estructura de Datos Pilas, Colas y ListasEstructura de Datos Pilas, Colas y Listas
Estructura de Datos Pilas, Colas y Listaschristgch
 
Sesion n°1 estructura de datos
Sesion n°1 estructura de datosSesion n°1 estructura de datos
Sesion n°1 estructura de datosJosé Braganza
 

Similar a Python Pilas y Colas (20)

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
 
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
 
Presentacion pilas lista y colas
Presentacion pilas lista y colas  Presentacion pilas lista y colas
Presentacion pilas lista y colas
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colas
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 
Lista,pilas y columnas
Lista,pilas y columnasLista,pilas y columnas
Lista,pilas y columnas
 
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, pilas y colas richard ramos 09-1130
Listas, pilas y colas   richard ramos 09-1130Listas, pilas y colas   richard ramos 09-1130
Listas, pilas y colas richard ramos 09-1130
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
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
 
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
 
Estructura de Datos Pilas, Colas y Listas
Estructura de Datos Pilas, Colas y ListasEstructura de Datos Pilas, Colas y Listas
Estructura de Datos Pilas, Colas y Listas
 
Sesion n°1 estructura de datos
Sesion n°1 estructura de datosSesion n°1 estructura de datos
Sesion n°1 estructura de datos
 

Más de Juan Astudillo

Petya / Petrwrap / NoPetya
Petya / Petrwrap / NoPetyaPetya / Petrwrap / NoPetya
Petya / Petrwrap / NoPetyaJuan Astudillo
 
Mejora de Rendimiento y Aceleración de Microsoft Excel
Mejora de Rendimiento y Aceleración de Microsoft ExcelMejora de Rendimiento y Aceleración de Microsoft Excel
Mejora de Rendimiento y Aceleración de Microsoft ExcelJuan Astudillo
 
Ransonware: introducción a nuevo Virus Informático
Ransonware: introducción a nuevo Virus InformáticoRansonware: introducción a nuevo Virus Informático
Ransonware: introducción a nuevo Virus InformáticoJuan Astudillo
 
JavaScript pilas (Stacks) y colas (Queues) 2
JavaScript pilas (Stacks) y colas (Queues) 2JavaScript pilas (Stacks) y colas (Queues) 2
JavaScript pilas (Stacks) y colas (Queues) 2Juan Astudillo
 
Introducción a la Medición de Sistemas (Moore y Amdhal)
Introducción a la Medición de Sistemas (Moore y Amdhal)Introducción a la Medición de Sistemas (Moore y Amdhal)
Introducción a la Medición de Sistemas (Moore y Amdhal)Juan Astudillo
 
Comandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteComandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteJuan Astudillo
 
Limpiar Windows, Internet Explorer y Chrome
Limpiar Windows, Internet Explorer y ChromeLimpiar Windows, Internet Explorer y Chrome
Limpiar Windows, Internet Explorer y ChromeJuan Astudillo
 
Acercamiento a BPMN - Instalacion y configuracion Bonita
Acercamiento a BPMN - Instalacion y configuracion BonitaAcercamiento a BPMN - Instalacion y configuracion Bonita
Acercamiento a BPMN - Instalacion y configuracion BonitaJuan Astudillo
 
Control de Aplicaciones - Hacking Corporativo - Auditoria Computacional
Control de Aplicaciones - Hacking Corporativo - Auditoria ComputacionalControl de Aplicaciones - Hacking Corporativo - Auditoria Computacional
Control de Aplicaciones - Hacking Corporativo - Auditoria ComputacionalJuan Astudillo
 
Java Arreglos y Matrices
Java Arreglos y MatricesJava Arreglos y Matrices
Java Arreglos y MatricesJuan Astudillo
 
Comandos Powershell para Sharepoint 2010
Comandos Powershell para Sharepoint 2010Comandos Powershell para Sharepoint 2010
Comandos Powershell para Sharepoint 2010Juan Astudillo
 
Activación servicios Windows para replicación MSSQL Server 2005
Activación servicios Windows para replicación MSSQL Server 2005 Activación servicios Windows para replicación MSSQL Server 2005
Activación servicios Windows para replicación MSSQL Server 2005 Juan Astudillo
 
Instalación y configuración Mysql Xampp
Instalación y configuración Mysql XamppInstalación y configuración Mysql Xampp
Instalación y configuración Mysql XamppJuan Astudillo
 
Instalación y configuración Mysql Server Federado 5.5.33
Instalación y configuración Mysql Server Federado 5.5.33Instalación y configuración Mysql Server Federado 5.5.33
Instalación y configuración Mysql Server Federado 5.5.33Juan Astudillo
 

Más de Juan Astudillo (18)

Introducción a Scrum
Introducción a ScrumIntroducción a Scrum
Introducción a Scrum
 
Petya / Petrwrap / NoPetya
Petya / Petrwrap / NoPetyaPetya / Petrwrap / NoPetya
Petya / Petrwrap / NoPetya
 
Mejora de Rendimiento y Aceleración de Microsoft Excel
Mejora de Rendimiento y Aceleración de Microsoft ExcelMejora de Rendimiento y Aceleración de Microsoft Excel
Mejora de Rendimiento y Aceleración de Microsoft Excel
 
Ransonware: introducción a nuevo Virus Informático
Ransonware: introducción a nuevo Virus InformáticoRansonware: introducción a nuevo Virus Informático
Ransonware: introducción a nuevo Virus Informático
 
JavaScript pilas (Stacks) y colas (Queues) 2
JavaScript pilas (Stacks) y colas (Queues) 2JavaScript pilas (Stacks) y colas (Queues) 2
JavaScript pilas (Stacks) y colas (Queues) 2
 
Introducción a la Medición de Sistemas (Moore y Amdhal)
Introducción a la Medición de Sistemas (Moore y Amdhal)Introducción a la Medición de Sistemas (Moore y Amdhal)
Introducción a la Medición de Sistemas (Moore y Amdhal)
 
Java & Strings
Java & StringsJava & Strings
Java & Strings
 
Java y Matematicas
Java y MatematicasJava y Matematicas
Java y Matematicas
 
Comandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteComandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSite
 
Limpiar Windows, Internet Explorer y Chrome
Limpiar Windows, Internet Explorer y ChromeLimpiar Windows, Internet Explorer y Chrome
Limpiar Windows, Internet Explorer y Chrome
 
Acercamiento a BPMN - Instalacion y configuracion Bonita
Acercamiento a BPMN - Instalacion y configuracion BonitaAcercamiento a BPMN - Instalacion y configuracion Bonita
Acercamiento a BPMN - Instalacion y configuracion Bonita
 
Control de Aplicaciones - Hacking Corporativo - Auditoria Computacional
Control de Aplicaciones - Hacking Corporativo - Auditoria ComputacionalControl de Aplicaciones - Hacking Corporativo - Auditoria Computacional
Control de Aplicaciones - Hacking Corporativo - Auditoria Computacional
 
Java Arreglos y Matrices
Java Arreglos y MatricesJava Arreglos y Matrices
Java Arreglos y Matrices
 
Comandos Powershell para Sharepoint 2010
Comandos Powershell para Sharepoint 2010Comandos Powershell para Sharepoint 2010
Comandos Powershell para Sharepoint 2010
 
Introduccion a Java
Introduccion a JavaIntroduccion a Java
Introduccion a Java
 
Activación servicios Windows para replicación MSSQL Server 2005
Activación servicios Windows para replicación MSSQL Server 2005 Activación servicios Windows para replicación MSSQL Server 2005
Activación servicios Windows para replicación MSSQL Server 2005
 
Instalación y configuración Mysql Xampp
Instalación y configuración Mysql XamppInstalación y configuración Mysql Xampp
Instalación y configuración Mysql Xampp
 
Instalación y configuración Mysql Server Federado 5.5.33
Instalación y configuración Mysql Server Federado 5.5.33Instalación y configuración Mysql Server Federado 5.5.33
Instalación y configuración Mysql Server Federado 5.5.33
 

Python Pilas y Colas

  • 1. Aprendiendo Python Estructuras de Datos Por Juan Astudillo
  • 2. TDA: Tipos Abstractos de Datos Pilas, Colas, Listas por Comprensión (Stack & Queue)
  • 3. Data Type List • list.append(x) Agrega un elemento al final de la lista; equivalente a: a[len(a):] = [x]. • list.extend(L) Extiende la lista agregando todos los elementos de la lista dada; equivalente a a[len(a):] = L. • list.insert(i, x) Inserta un ítem a la posición dada. El primer argumento es el índice del elemento antes del cual se va a insertar, entonces a.insert(0, x) inserta al frente de la lista, y a.insert(len(a), x) es equivalente a a.append(x).
  • 4. Data Type List • list.remove(x) Remueve el primer item desde la lista cuyo valor es x. Arroja un error si no existe tal ítem. • list.pop([i]) Remueve el item a la posición entregada en la lista, y lo retorna. Si el índice no es especificado, a.pop() remueve y retorna el ultimo ítem en la lista. (Los paréntesis cuadrados alrededor de i en el método denota que el parámetro es opcional).
  • 5. Data Type List • list.index(x) Retorna el índice en la lista del primer ítem cuyo valor es x. Arroja un error si dicho ítem no está. • list.count(x) Retorno el numero de veces que x aparece en la lista. • list.sort() Ordena los ítems de la lista. • list.reverse() Reversa los elementos de la lista.
  • 6. Pilas (Stacks) • Una pila (stack en inglés) es parte de los TDA (Tipos Abstractos de Datos) es una lista ordenada o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. • Esta estructura TDA se usa en multitud de ocasiones en el área de la informática debido a su simplicitud y ordenación implícita de la propia estructura.
  • 7. Pilas (Stacks) • En todo momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, Top of Stack en inglés ( es español a veces llamado Tope)). La operación sacar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS. • Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo.
  • 8. Pilas (Stacks) • Para que se ocupan las Pilas: -Evaluación de expresiones en notación postfija (notación polaca inversa). -Reconocedores sintácticos de lenguajes independientes del contexto -Implementación de recursividad.
  • 9. Pilas (Stacks) Operaciones con Pilas Una pila cuenta con 2 operaciones imprescindibles: apilar (Push) y desapilar (Pop), a las que en las implementaciones modernas de las pilas se suelen añadir más de uso habitual. Crear: se crea la pila vacía. (constructor) Tamaño: regresa el numero de elementos de la pila. (size) Apilar: se añade un elemento a la pila.(push)
  • 10. Pilas (Stacks) • Operaciones con Pilas (continuación) Desapilar (retirar): se elimina el elemento frontal de la pila.(pop) Cima: devuelve el elemento que esta en la cima de la pila. (top o peek) Vacía: devuelve cierto si la pila está vacía o falso en caso contrario (empty).
  • 12. Pilas (Stacks) Programa en Python que muestra el comportamiento de LIFO Utlizamos el datatype “List” y algunos métodos para ocuparlo como stack Type "help", "copyright", "credits" or "license" for more information. >>> stack = [2,4,5] >>> stack.append(6) >>> stack.append(7) >>> stack [2, 4, 5, 6, 7] >>> stack.pop() 7 >>> stack.pop() 6 >>> stack.pop() 5 >>> stack.pop() 4 >>> stack.pop() 2 >>> stack.pop()
  • 13. Colas (Queue) •Una cola (también llamada fila) es otro TDA, 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 pop 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. •Las colas se utilizan en sistemas informáticos, transportes y operaciones de investigación (entre otros), dónde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento. Este tipo de estructura de datos abstracta se implementa en lenguajes orientados a objetos mediante clases, en forma de listas enlazadas.
  • 14. Colas (Queue) Operaciones Básicas con Colas •Crear: se crea la cola vacía. •Encolar (añadir, entrar, insertar): 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ó.
  • 16. Colas (Queue) >>> from collections import deque >>> queue = deque(["Erick", "Miguel", "john"]) >>> queue.append("david") >>> queue.append("hoffmann") >>> queue.popleft() >>> queue.popleft() 'Erick' >>> queue.popleft() 'Miguel' >>> queue.popleft() 'john' >>> queue.popleft() 'david' >>> queue.popleft() 'hoffmann' >>> queue.popleft() Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: pop from an empty deque
  • 17. Listas por Comprensión (List Comprehensions ) >>> squares = [] >>> for x in range(10): ... squares.append(x**2) ... >>> squares [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] Las listas por comprensión proporcionan una manera concisa para crear listas. Las aplicaciones más comunes son para hacer nuevas listas donde cada elemento es el resultado de algunas operaciones aplicadas a cada miembro de otra secuencia o repetible, o para crear una sub secuencia de aquellos elementos que cumplan una determinada condición.
  • 18. Listas por Comprensión (List Comprehensions ) >>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y] [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)] ejemplo de lista por Comprensión: >>> combs = [] >>> for x in [1,2,3]: … for y in [3,1,4]: … if x != y: … combs.append((x, y)) ... >>> combs [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)] es equivalente a:
  • 19. Listas por Comprensión (List Comprehensions ) ejemplo de lista por Comprensión: >>> from math import pi >>> [str(round(pi, i)) for i in range(1, 6)] ['3.1', '3.14', '3.142', '3.1416', '3.14159']
  • 20. • Métodos para Pilas (Stack) sobre Stack (Estos son algunos de los más usados e importantes) • Push • Pop • Peek • Size • Get • Set • Search • Print <pila>; • Métodos para Colas (Queue) sobre LinkedList • AddFirst • RemoveLast • PeekLast => Front • Size • Get • Set • Print <cola>; Resumen
  • 21. Gracias Python es Marca y Propiedad de Python Software Foundation. Todos los derechos reservados. Microsoft Windows y Microsoft Power Point son Marca y Propiedad de Microsoft Corporation. Todos los derechos reservados. Presentación realizada con productos originales Microsoft.