SlideShare una empresa de Scribd logo
1 de 2
Descargar para leer sin conexión
Algoritmos y Programas – Año 2012


                                       Práctica 3

                              Encapsulamiento y Abstracción
   Objetivos:
   • Acostumbrarse a utilizar las operaciones para acceder a las estructuras de datos y no
       violar el encapsulamiento.
   • Acostumbrarse a reutilizar el código y no volver codificar desde cero.
   • Implementar y usar de las estructuras de datos: pila y cola

1) Sea la siguiente especificación del TAD Pila:

       •   push(pila,elemento): Agrega un elemento a la Pila.
       •   pop(pila): Extraer un elemento de pila. El elemento devuelto siempre es el último
           que se añadió.
       •   isEmpty(pila): Retorna si pila está vacía.
       •   top(pila): Retorna el elemento al tope de la pila sin sacarlo de ella.
       •   size(pila): Retorna la cantidad de elementos que tiene pila.
       •   reverse(pila): Retorna pila con los elementos en posición invertida.
       •   pushAll(pila1, pila2): Agrega todos los elementos de pila2 en pila1.

   Implementar el TAD Pila en Python.

2) Escriba una función que reciba una cadena y la invierta utilizando una Pila.

3) (A entregar) Sea la siguiente especificación del TAD Cola:
      •       new(): retorna una nueva cola
      •       push(cola, elemento): agrega un nuevo elemento a la cola
      •       pop(cola): saca un elemento del principio de la cola
      •       isEmpty(cola): retorna si la cola está vacía
      •       first(cola): retorna el elemento al principio de la cola
      •       size (cola): retorna la longitud de la cola
      •       reverse(cola): Retorna cola con los elementos en posición invertida.
      •       pushAll(cola1, cola2): agrega todos los elementos de cola2 en cola1

   Implementar el TAD Cola en Python.

4) Utilizando el TAD Cola provisto por la cátedra (archivo Cola.pyc) y sabiendo que se
   encuentran definidas las operaciones antes descriptas, escriba una función llamada
   sumarColas que reciba 2 Colas de enteros y devuelva una Cola con sus elementos sumados.

5) (A entregar) Ahora reescriba la misma función pero en forma recursiva.
Algoritmos y Programas – Año 2012


6) Recuerdan el siguiente ejercicio de la práctica 1?

   Escriba en Python un módulo que lea del teclado una cadena de caracteres e imprima si la
   cadena esta balanceada o no.

    Decimos que una cadena de caracteres S está balanceada si tiene alguna de las siguientes
    formas:
    S = ‘’ S es el string de longitud cero.
    S = ‘(T)’
    S = ‘[T]’
    S = ‘{T}’
    S = ‘TU’
    Donde ambos T y U son cadenas balanceadas. Por ejemplo, ‘{[ ( ) ] }’ está balanceada, pero
    ‘ ( [ ) ]’ no lo está.


   Existe una forma más fácil de hacerlo con Pilas o Colas? De ser así, implementar la nueva
   solución.

7) Evaluación de expresiones postfijas :
   Una expresión aritmética en notación postfija (o notación polaca inversa) es una secuencia
   formada por símbolos de dos tipos diferentes: operadores (para simplificar, consideraremos
   únicamente los operadores aritméticos binarios +, -, * y /) y operandos (valores de 0 a 9).
   Cada operador se escribe detrás de sus operandos.
   Por ejemplo, a la expresión siguiente, escrita en la notación habitual (infija):
       4*6/3
   le corresponde la siguiente expresión en notación postfija:
       46*3/

   Escriba una función evaluarPostfija que dada un expresión en notación postfija devuelva el
   resultado de su evaluación. En el ejemplo anterior el resultado evaluar la expresión sería 8.

Más contenido relacionado

La actualidad más candente

Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337CJrosario2
 
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
 
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)Rubi Veronica Chimal Cuxin
 
Tutorial función contar excel
Tutorial función contar excelTutorial función contar excel
Tutorial función contar excelysito
 
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
 

La actualidad más candente (8)

Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Listasenlazadas 100517143015-phpapp02
Listasenlazadas 100517143015-phpapp02Listasenlazadas 100517143015-phpapp02
Listasenlazadas 100517143015-phpapp02
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
 
Estructura de Datos (LISTAS, COLAS, PILAS)
Estructura de Datos (LISTAS, COLAS, PILAS)Estructura de Datos (LISTAS, COLAS, PILAS)
Estructura de Datos (LISTAS, COLAS, PILAS)
 
Tutorial función contar excel
Tutorial función contar excelTutorial función contar excel
Tutorial función contar excel
 
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
 

Destacado

Roxanne Allen Media Evaluation
Roxanne Allen Media EvaluationRoxanne Allen Media Evaluation
Roxanne Allen Media Evaluationguestde4571
 
Yahoo! Hack Europe Workshop
Yahoo! Hack Europe WorkshopYahoo! Hack Europe Workshop
Yahoo! Hack Europe WorkshopHortonworks
 
Yahoo! Hack Europe
Yahoo! Hack EuropeYahoo! Hack Europe
Yahoo! Hack EuropeHortonworks
 
Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...
Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...
Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...Data Con LA
 
Trucking demo w Spark ML - Paul Hargis - Hortonworks
Trucking demo w Spark ML - Paul Hargis - HortonworksTrucking demo w Spark ML - Paul Hargis - Hortonworks
Trucking demo w Spark ML - Paul Hargis - HortonworksKelly Kohlleffel
 

Destacado (6)

Roxanne Allen Media Evaluation
Roxanne Allen Media EvaluationRoxanne Allen Media Evaluation
Roxanne Allen Media Evaluation
 
Yahoo! Hack Europe Workshop
Yahoo! Hack Europe WorkshopYahoo! Hack Europe Workshop
Yahoo! Hack Europe Workshop
 
Yahoo! Hack Europe
Yahoo! Hack EuropeYahoo! Hack Europe
Yahoo! Hack Europe
 
Apache Ant
Apache AntApache Ant
Apache Ant
 
Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...
Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...
Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...
 
Trucking demo w Spark ML - Paul Hargis - Hortonworks
Trucking demo w Spark ML - Paul Hargis - HortonworksTrucking demo w Spark ML - Paul Hargis - Hortonworks
Trucking demo w Spark ML - Paul Hargis - Hortonworks
 

Similar a Practica 3

Curso-PROPE-PyED-5-Pilas-Colas-programacion
Curso-PROPE-PyED-5-Pilas-Colas-programacionCurso-PROPE-PyED-5-Pilas-Colas-programacion
Curso-PROPE-PyED-5-Pilas-Colas-programacionLUISFERNANDOMORENOSO2
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y ColasAlex Pin
 
Estructuradatospilasycolas 121106170754-phpapp02
Estructuradatospilasycolas 121106170754-phpapp02Estructuradatospilasycolas 121106170754-phpapp02
Estructuradatospilasycolas 121106170754-phpapp02Z Karina Hernandez A
 
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
 
Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Ricardo Tesoriero
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasJose R. Trejo
 
TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233
TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233
TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233GABRIEL64287
 
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
 
Estructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje cEstructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje cCarlosRamsesGp
 

Similar a Practica 3 (20)

Curso-PROPE-PyED-5-Pilas-Colas-programacion
Curso-PROPE-PyED-5-Pilas-Colas-programacionCurso-PROPE-PyED-5-Pilas-Colas-programacion
Curso-PROPE-PyED-5-Pilas-Colas-programacion
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Estructuradatospilasycolas 121106170754-phpapp02
Estructuradatospilasycolas 121106170754-phpapp02Estructuradatospilasycolas 121106170754-phpapp02
Estructuradatospilasycolas 121106170754-phpapp02
 
Estructura de datos pilas y colas
Estructura de datos pilas y colasEstructura de datos pilas y colas
Estructura de datos pilas y colas
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
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
 
Operaciones con colas
Operaciones con colasOperaciones con colas
Operaciones con colas
 
08 pilas1 t2018
08 pilas1 t201808 pilas1 t2018
08 pilas1 t2018
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Colas
ColasColas
Colas
 
Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)
 
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
 
TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233
TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233
TRABAJO JOSE GABRIEL LUCENA PILAS PDF1233
 
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
 
Estructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje cEstructuras dinámicas de Datos Lenguaje c
Estructuras dinámicas de Datos Lenguaje c
 
Clase ed v7
Clase ed v7Clase ed v7
Clase ed v7
 
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
 

Más de Jorge Gamez

Más de Jorge Gamez (19)

Python i
Python iPython i
Python i
 
Clase 6 excepciones
Clase 6   excepcionesClase 6   excepciones
Clase 6 excepciones
 
Practica repaso 4 5 2da
Practica repaso 4 5 2daPractica repaso 4 5 2da
Practica repaso 4 5 2da
 
Practica repaso 1 3-2
Practica repaso 1 3-2Practica repaso 1 3-2
Practica repaso 1 3-2
 
Practica repaso pilas y colas con archivos
Practica repaso pilas y colas   con archivosPractica repaso pilas y colas   con archivos
Practica repaso pilas y colas con archivos
 
Practica repaso pilas y colas
Practica repaso pilas y colasPractica repaso pilas y colas
Practica repaso pilas y colas
 
Practica 5
Practica  5Practica  5
Practica 5
 
Practica 4
Practica  4Practica  4
Practica 4
 
Practica 2
Practica  2Practica  2
Practica 2
 
Practica 1
Practica  1Practica  1
Practica 1
 
Practica repaso 1 3-2
Practica repaso 1 3-2Practica repaso 1 3-2
Practica repaso 1 3-2
 
Clase5
Clase5Clase5
Clase5
 
Clase4
Clase4Clase4
Clase4
 
Clase3
Clase3Clase3
Clase3
 
Clase2
Clase2Clase2
Clase2
 
Clase1
Clase1Clase1
Clase1
 
Clase archivos
Clase   archivosClase   archivos
Clase archivos
 
2 da clase la ingeniería
2 da clase  la ingeniería2 da clase  la ingeniería
2 da clase la ingeniería
 
Presentación clase 3
Presentación clase 3Presentación clase 3
Presentación clase 3
 

Practica 3

  • 1. Algoritmos y Programas – Año 2012 Práctica 3 Encapsulamiento y Abstracción Objetivos: • Acostumbrarse a utilizar las operaciones para acceder a las estructuras de datos y no violar el encapsulamiento. • Acostumbrarse a reutilizar el código y no volver codificar desde cero. • Implementar y usar de las estructuras de datos: pila y cola 1) Sea la siguiente especificación del TAD Pila: • push(pila,elemento): Agrega un elemento a la Pila. • pop(pila): Extraer un elemento de pila. El elemento devuelto siempre es el último que se añadió. • isEmpty(pila): Retorna si pila está vacía. • top(pila): Retorna el elemento al tope de la pila sin sacarlo de ella. • size(pila): Retorna la cantidad de elementos que tiene pila. • reverse(pila): Retorna pila con los elementos en posición invertida. • pushAll(pila1, pila2): Agrega todos los elementos de pila2 en pila1. Implementar el TAD Pila en Python. 2) Escriba una función que reciba una cadena y la invierta utilizando una Pila. 3) (A entregar) Sea la siguiente especificación del TAD Cola: • new(): retorna una nueva cola • push(cola, elemento): agrega un nuevo elemento a la cola • pop(cola): saca un elemento del principio de la cola • isEmpty(cola): retorna si la cola está vacía • first(cola): retorna el elemento al principio de la cola • size (cola): retorna la longitud de la cola • reverse(cola): Retorna cola con los elementos en posición invertida. • pushAll(cola1, cola2): agrega todos los elementos de cola2 en cola1 Implementar el TAD Cola en Python. 4) Utilizando el TAD Cola provisto por la cátedra (archivo Cola.pyc) y sabiendo que se encuentran definidas las operaciones antes descriptas, escriba una función llamada sumarColas que reciba 2 Colas de enteros y devuelva una Cola con sus elementos sumados. 5) (A entregar) Ahora reescriba la misma función pero en forma recursiva.
  • 2. Algoritmos y Programas – Año 2012 6) Recuerdan el siguiente ejercicio de la práctica 1? Escriba en Python un módulo que lea del teclado una cadena de caracteres e imprima si la cadena esta balanceada o no. Decimos que una cadena de caracteres S está balanceada si tiene alguna de las siguientes formas: S = ‘’ S es el string de longitud cero. S = ‘(T)’ S = ‘[T]’ S = ‘{T}’ S = ‘TU’ Donde ambos T y U son cadenas balanceadas. Por ejemplo, ‘{[ ( ) ] }’ está balanceada, pero ‘ ( [ ) ]’ no lo está. Existe una forma más fácil de hacerlo con Pilas o Colas? De ser así, implementar la nueva solución. 7) Evaluación de expresiones postfijas : Una expresión aritmética en notación postfija (o notación polaca inversa) es una secuencia formada por símbolos de dos tipos diferentes: operadores (para simplificar, consideraremos únicamente los operadores aritméticos binarios +, -, * y /) y operandos (valores de 0 a 9). Cada operador se escribe detrás de sus operandos. Por ejemplo, a la expresión siguiente, escrita en la notación habitual (infija): 4*6/3 le corresponde la siguiente expresión en notación postfija: 46*3/ Escriba una función evaluarPostfija que dada un expresión en notación postfija devuelva el resultado de su evaluación. En el ejemplo anterior el resultado evaluar la expresión sería 8.