1. El Tipo Abstracto de Datos.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "1. El Tipo Abstracto de Datos."

Transcripción

1 Tipo Abstracto de s TAD Pila y TAD Cola 1. El Tipo Abstracto de s. 2. Definición de un TAD Pila. 3. Operaciones sobre el TAD Pila. 4. Implementación dinámica del TAD Pila en C. 5. Definición de un TAD Cola. 6. Operaciones sobre el TAD Cola. 7. Implementación dinámica del TAD Cola en C. 8. Aplicaciones del TAD Pila y del TAD Cola. 9. Ejercicios. Página 1

2 Tipos Abstractos de s, TAD Pila y TAD Cola 1. El Tipo Abstracto de datos El Tipo Abstracto de s o simplemente TAD, es una característica que proveen algunos lenguajes de programación. Un TAD se diferencia de los tipos de datos básicos por ser un tipo de dato definido por el programador similar a las estructuras y registros. Sin embargo, va más allá del hecho de solo almacenar datos, también están implícitas las operaciones de manipulación, almacenamiento y lógica de funcionamiento. Un Tipo Abstracto de s es un modelo con un número de operaciones que afectan a ese modelo. Los TAD proporcionan numerosos beneficios al programador y se pueden resumir en: Permiten una mejor conceptualización y modelado del mundo real. Mejora la representación y la comprensibilidad Mejoran la robustez del sistema. Además, cuando se implementan por medio de Programación Orientada a Objetos (POO): Mejoran el rendimiento y las prestaciones para lenguajes tipeados optimizando el tiempo de compilación. Separan la implementación de la especificación. La mejora y modificación de la implementación no afecta a la interfaz pública del Tipo Abstracto de. Permiten la extensibilidad del sistema. Los componentes de software son reutilizables y más fáciles de crear y mantener. Recogen la mejor semántica del tipo. Los Tipos Abstractos de s agrupan las operaciones y la representación de atributos o propiedades. Para comprender estos conceptos, lo mejor es llevarlos a la práctica. No todos los lenguajes de programación disponen del tipo de dato número complejo y de las operaciones básicas que pueden realizarse con este tipo de dato. Entonces, sería muy interesante crear el tipo de dato que almacene un número complejo y definir las operaciones que se pueden realizar sobre los complejos. Un número complejo tiene la siguiente forma: i parte real y parte imaginaria Para almacenar los datos de este número complejo se puede utilizar una estructura que contenga dos campos: Numero Real Imaginario Algunas de las operaciones que se pueden efectuar con los números complejos son la suma y la resta. La condición para realizar estas operaciones es que se opera la parte real y la parte imaginaria de forma separada. Entonces si tenemos dos números complejos la suma y la resta se realizarán de la siguiente manera: Página 2

3 Computación para Ingenierías II Ing. Franz Mercado Lorberg Suma i i i Resta i i i La implementación para el almacenamiento y operaciones de los números complejos con la programación estructurada en C es: #include <stdio.h> // Definición de la estructura struct Complejo float Real; float Imaginario; ; // Prototipos de funciones struct Complejo Carga_s( void ); struct Complejo Suma(struct Complejo Num1, struct Complejo Num2 ); struct Complejo Resta(struct Complejo Num1, struct Complejo Num2 ); void Muestra(struct Complejo Num ); void main( void ) // Declaración de tres variables de tipo estructura Complejo struct Complejo Numero1, Numero2, Resultado; Numero1 = Carga_s(); Numero2 = Carga_s(); Resultado = Suma( Numero1, Numero2); printf("\n\nla suma de: "); Muestra( Numero1 ); printf("\ny de: "); Muestra( Numero2 ); printf("\nda como resultado: "); Muestra( Resultado ); Resultado = Resta( Numero1, Numero2); printf("\n\nla resta de: "); Muestra( Numero1 ); printf("\ny de: "); Muestra( Numero2 ); printf("\nda como resultado: "); Muestra( Resultado ); Página 3

4 Tipos Abstractos de s, TAD Pila y TAD Cola struct Complejo Carga_s( void ) struct Complejo Num; printf("\nintroduzca la parte real del complejo:\n"); scanf("%f", &Num.Real ); printf("introduzca la parte imaginaria del complejo:\n"); scanf("%f", &Num.Imaginario ); return Num; struct Complejo Suma(struct Complejo Num1, struct Complejo Num2 ) struct Complejo Res; Res.Real = Num1.Real + Num2.Real; Res.Imaginario = Num1.Imaginario + Num2.Imaginario; return Res; struct Complejo Resta(struct Complejo Num1, struct Complejo Num2 ) struct Complejo Res; Res.Real = Num1.Real - Num2.Real; Res.Imaginario = Num1.Imaginario - Num2.Imaginario; return Res; void Muestra(struct Complejo Num ) if ( Num.Imaginario >= 0 ) printf("%5.2f + %5.2fi", Num.Real, Num.Imaginario ); else printf("%5.2f - %5.2fi", Num.Real, -Num.Imaginario ); 2. Definición de un TAD Pila Este Tipo Abstracto de s permite almacenar datos de acuerdo a la siguiente lógica: Último en entrar, Primero en Salir (en inglés es LIFO Last In First Out). En la vida real podemos apreciar este comportamiento cuando se apilan elementos del mismo tipo, por ejemplo una pila de platos. Cuando se apila un nuevo plato este irá en la cima de los anteriores platos. Cuando se saca un plato para lavarlo, lógicamente saldrá el plato que se encuentra en la cima, sino se romperá la estructura de apilamiento de platos y lo más probable es que se rompan los platos también... En inglés una Pila se denomina stack. Página 4

5 Computación para Ingenierías II Ing. Franz Mercado Lorberg La imagen siguiente muestra una pila de platos: C B A Los platos están rotulados para identificarlos mejor. El plato C se encuentra en la cima de la pila. Importante: El elemento que se encuentra en la cima se denomina el de la pila. 3. Operaciones sobre un TAD Pila Existen dos operaciones fundamentales en el TAD Pila: Apilar consiste en agregar un nuevo elemento a la pila. Esta operación se conoce en inglés como Push. Des-apilar consiste en quitar de la pila el elemento que se encuentra al. Esta operación se conoce en inglés como Pop. Importante: La pila inicialmente está vacía. Veamos con un ejemplo como funciona el apilamiento: (Paso 1) (Paso 2) (Paso 3) (Paso 4) C B B A A A La pila inicialmente está vacía. No existe. Se agrega el primer elemento. Por ser el único elemento, A se convierte en el tope de la pila. Se agrega el segundo elemento. B se ubica encima de A y se convierte en el nuevo tope. Se agrega el tercer elemento. C se ubica encima de B y se convierte en el nuevo tope. En general el nuevo elemento que va a ingresar a la pila se ubica por encima del y además se convierte en el nuevo. La única excepción es entre el primer y segundo paso donde no existe debido a que la pila está vacía. Página 5

6 Tipos Abstractos de s, TAD Pila y TAD Cola Veamos con un ejemplo como funciona el des-apilamiento: (Paso 1) (Paso 2) (Paso 3) (Paso 4) C B B A A A La pila contiene elementos. El es C. Se quita el elemento C que está en el. El nuevo tope es B que es el elemento anterior a C. Se quita el elemento B que está en el. El nuevo tope es A que es el elemento anterior a B. Se quita el elemento A que está en el. No hay nuevo pues la Pila se ha vaciado. En general el elemento que va a quitar de la pila es el que está en el y elemento anterior se convierte en el nuevo. La única excepción es cuando ya no hay más elementos para quitar. 4. Implementación dinámica del TAD Pila en C Para implementar el TAD Pila se va a requerir de estructuras que permitan modelar los elementos que componen la pila. Los elementos de la pila se denominan Nodos. La definición de la estructura constará de las siguientes partes: struct Nodo char ; struct Nodo *; ; Nodo Observe que el campo se utilizará para almacenar el elemento. El campo es un puntero que se utilizará para apuntar al anterior elemento de la pila (como el anterior elemento es de tipo struct Nodo, esta definición es apropiada). Para saber en todo momento cuál es el de la pila se utilizará un puntero global. Importante: Cuando un puntero no apunta a nada se utiliza NULL (el nulo de los punteros). Para especificar que pila está vacía se tendrá una expresión similar a: struct Nodo * = NULL; NULL Página 6

7 Computación para Ingenierías II Ing. Franz Mercado Lorberg El objetivo de esta combinación de punteros y estructuras para representar la pila A, B y C será similar al la siguiente imagen: De esta forma, se entiende que el elemento que está en el es. Que el elemento anterior a es y el elemento anterior a es. Importante: Se ha utilizado una para representar el hecho de que no existe un elemento anterior a. Esta equis se implementará en el código como un puntero nulo (NULL). Ahora que se ha comprendido como se va a implementar el TAD Pila en C, veamos el código: #include <stdio.h> // Definición de la estructura struct Nodo char ; struct Nodo *; ; // Puntero global que indica donde está el. // Inicialmente la pila está vacía, entonces apunta a NULL. struct Nodo * = NULL; // Prototipos de funciones void Inserta Pila( char Letra ); void Muestra( void ); void main( void ) // Inserta algunos elementos en el TAD Pila Inserta Pila(); Inserta Pila(); Inserta Pila(); // Despliega todos los elementos almacenados en el TAD pila Muestra(); Página 7

8 Tipos Abstractos de s, TAD Pila y TAD Cola // Funciones para el manejo del TAD Pila void Inserta Pila( char Letra ) struct Nodo *; = (struct Nodo*) malloc(sizeof(struct Nodo)); // Verifica si pudo reservar espacio en la memoria if ( == NULL ) return; // Si no pudo sale de la función else // Si pudo reservar, carga el nodo -> = Letra; -> = NULL; // Si no hay el nuevo se convierte en // el nuevo. Si ya había un, se lo // enlaza como anterior elemento y el // se convierte en el nuevo. if ( == NULL ) = ; else -> = ; = ; void Muestra(void) struct Nodo *Aux; // Si no hay no se muestra nada, sino se recorre el // TAD Pila y se muestran los elementos que lo componen. if ( == NULL ) printf("\nel TAD Pila esta vacío..."); else printf("\nel TAD Pila está compuesto por:\n"); Aux = ; while( Aux!= NULL ) printf("\nelemento: %c", Aux->); Aux = Aux->; Gráficamente se representaría como: Nodo Definición del molde, modelo ó plantilla Página 8

9 Computación para Ingenierías II Ing. Franz Mercado Lorberg En base a la definición del modelo se crea la variable global puntero del tipo Nodo. Inicialmente apunta a NULL porque el TAD Pila está vacío. NULL (Paso 1) Cuando se llama a la función Inserta Pila( ) con el valor, se intenta reservar un espacio de memoria. En caso de tener éxito la variable queda apuntado al nuevo espacio. NULL El valor está almacenado en la variable Letra, así es que se asigna Letra al campo apuntado por. El campo se llena con un NULL pues aún no se ha determinado si existe un elemento anterior. NULL Luego se pregunta si el es igual a NULL. Si esto se cumple es porque el TAD Pila está vacío y el nuevo elemento debe convertirse en el nuevo. (Paso 2) Al llamar a la función Inserta Pila( ) con el valor, se intenta reservar un espacio de memoria. En caso de tener éxito la variable queda apuntado al nuevo espacio. Página 9

10 Tipos Abstractos de s, TAD Pila y TAD Cola El valor está almacenado en la variable Letra, así es que se asigna Letra al campo apuntado por. El campo se llena con un NULL pues aún no se ha determinado si existe un elemento anterior. Luego se pregunta si el es igual a NULL. Si esto NO se cumple es porque el TAD Pila ya contiene uno o más elementos. Así es que hay que enlazar el campo anterior de con el. Ahora se tiene un nuevo elemento que está por encima de los demás, el puntero tendrá que desplazarse al mismo lugar donde apunta. (Paso 3) Al llamar a la función Inserta Pila( ) con el valor, se intenta reservar un espacio de memoria. En caso de tener éxito la variable queda apuntado al nuevo espacio. Página 10

11 Computación para Ingenierías II Ing. Franz Mercado Lorberg El valor está almacenado en la variable Letra, así es que se asigna Letra al campo apuntado por. El campo se llena con un NULL pues aún no se ha determinado si existe un elemento anterior. Luego se pregunta si el es igual a NULL. Si esto NO se cumple es porque el TAD Pila ya contiene uno o más elementos. Así es que hay que enlazar el campo anterior de con el. Ahora se tiene un nuevo elemento que está por encima de los demás, el puntero tendrá que desplazarse al mismo lugar donde apunta. Finalmente el TAD Pila contiene C, B y A. Página 11

12 Tipos Abstractos de s, TAD Pila y TAD Cola Importante: Seguramente ha notado que la variable desaparece cada vez. Esto se debe a que es una variable local y cuando termina de ejecutarse la función Inserta Pila( ) donde ha sido declarada, la variable se descarga de la memoria. Para desplegar los elementos almacenados en el TAD Pila, se utiliza una variable local de tipo puntero a estructura Aux que comienza en el lugar donde está el. Aux Se emplea un ciclo para ir desplazando Aux a través del TAD. Cada vez que se ejecuta la instrucción: Aux = Aux->; Provoca que Aux vaya al nodo anterior. Aux En determinado momento el puntero Aux saltará a NULL (sale fuera de la estructura). Esto causará que el bucle o ciclo while se detenga: while( Aux!= NULL ) Aux NULL Página 12

13 Computación para Ingenierías II Ing. Franz Mercado Lorberg 5. Definición de un TAD Cola Este Tipo Abstracto de s permite almacenar datos de acuerdo a la siguiente lógica: Primero en entrar, Primero en Salir (en inglés es FIFO First In First Out). En la vida real podemos apreciar este comportamiento cuando se realiza una cola de personas que desean ser atendidas por un cajero en el banco. Cuando el cajero atiende a una persona, esta será la que se encuentra al inicio de la cola. Cuando una nueva persona llega, deberá ubicarse al final de la cola sino romperá la estructura de cola y es posible que las personas que estaban primero se molesten y quieran tomar represalias verbales ó físicas con el nuevo En inglés una Cola se denomina queu. 6. Operaciones sobre el TAD Cola Existen dos operaciones fundamentales en el TAD Cola: Agregar Sacar un nuevo elemento a la cola. El nuevo elemento va al final de la cola a menos que sea el único y automáticamente será el inicio de la cola. un elemento existente de la cola. El elemento que sale es el primero de la cola. La única excepción es que no existan elementos en la cola. Importante: La cola inicialmente está vacía. 7. Implementación dinámica del TAD Cola en C La implementación el TAD Cola también requerirá de estructuras que permitan modelar los elementos que componen la cola. Los elementos de la cola también se denominan Nodos. La definición de la estructura constará de las siguientes partes: struct Nodo char ; struct Nodo *Sig; ; Nodo Sig Observe que el campo se utilizará para almacenar el elemento. El campo Sig es un puntero que se utilizará para apuntar al siguiente elemento de la cola (como el siguiente elemento es de tipo struct Nodo, esta definición es apropiada). Página 13

14 Tipos Abstractos de s, TAD Pila y TAD Cola Para saber en todo momento cuál es el Inicio de la cola se utilizará un puntero global. Para especificar que la cola está vacía se tendrá la expresión: struct Nodo *Inicio = NULL; Inicio NULL Si se insertan los elementos A, B y C en un TAD cola se tendrá la siguiente imagen: Inicio Sig Sig Sig De esta manera, se entiende que el elemento que está en al inicio es. Que el siguiente elemento después de es y el siguiente elemento después de es. Importante: Se ha utilizado una para representar el hecho de que no existe ningún elemento después de. Esta equis se implementará en el código como un puntero nulo (NULL). Vamos al código: #include <stdio.h> // Definición de la estructura struct Nodo char ; struct Nodo *Sig; ; // Puntero global que indica donde está el Inicio. // Inicialmente la cola está vacía, entonces Inicio apunta a NULL. struct Nodo *Inicio = NULL; // Prototipos de funciones void Inserta Cola( char Letra ); void Muestra( void ); void main( void ) // Inserta algunos elementos en el TAD Cola Inserta Cola(); Inserta Cola(); Inserta Cola(); // Despliega todos los elementos almacenados en el TAD cola Muestra(); Página 14

15 Computación para Ingenierías II Ing. Franz Mercado Lorberg // Funciones para el manejo del TAD Cola void Inserta Cola( char Letra ) struct Nodo *, *Ultimo; = (struct Nodo*) malloc(sizeof(struct Nodo)); // Verifica si pudo reservar espacio en la memoria if ( == NULL ) return; // Si no pudo sale de la función else // Si pudo reservar, carga el nodo -> = Letra; ->Sig = NULL; // Si no hay Inicio el nuevo se convierte en // el nuevo Inicio. Si ya había Inicio, hay que // desplazarse hasta el último elemento y enlazar // el último con el. if ( Inicio == NULL ) Inicio = ; else // Desplaza Ultimo hasta el // último elemento Ultimo = Inicio; while( Ultimo->Sig!= NULL ) Ultimo = Ultimo->Sig; // Enlaza el último con el nuevo Ultimo->Sig = ; void Muestra(void) struct Nodo *Aux; // Si no hay Inicio no se muestra nada, sino se recorre el // TAD Cola y se muestran los elementos que lo componen. if ( Inicio == NULL ) printf("\nel TAD Cola esta vacío..."); else printf("\nel TAD Cola está compuesto por:\n"); Aux = Inicio; while( Aux!= NULL ) printf("\nelemento: %c", Aux->); Aux = Aux->Sig; Página 15

16 Tipos Abstractos de s, TAD Pila y TAD Cola 8. Aplicaciones del TAD Pila y del TAD Cola Una de las aplicaciones más típicas del TAD Pila es almacenar los elementos de de que consta una expresión aritmética que está formada por operadores y operandos, con el fin de evaluar el valor numérico de dicha expresión. Para una explicación completa de este método de evaluación lea el texto Estructura de s. Algoritmos y abstracción y objetos de Luís Joyanes Aguilar e Ignacio Zahonero, McGraw-Hill, 1999, página 215. Los TAD Cola son de carácter más general pues se pueden aplicar a sistemas de pedidos, sistemas de inventarios, sistemas de atención de clientes (bancos e instituciones donde es fundamental el orden de llegada) e inclusive adaptar el comportamiento de la cola a una cola de prioridades. Para tener una mayor referencia busque información en el texto Estructura de s. Algoritmos y abstracción y objetos de Luís Joyanes Aguilar e Ignacio Zahonero, McGraw-Hill, 1999, página Ejercicios Resuelva los siguientes problemas: 1. Registre en un TAD Pila los datos: 33, 44, 11, 77, 55. Implemente las funciones requeridas para extraer un dato del TAD Pila y encontrar el dato más pequeño del TAD. Al extraer un dato, se elimina el nodo pero se retorna el valor numérico que se almacenaba en el nodo. 2. Almacene N sueldos (float) en un TAD Cola. Calcule cuanto se debe pagar por concepto de sueldos sin impuestos y cuanto se debe retener por concepto de impuestos. Considere los impuestos RC-IVA (13%) e IT (3%) que se aplican a todos los sueldos. 3. Registre en un TAD Pila los datos: 1, 2, 3, 4, 5, 6. Implemente las funciones requeridas para extraer todos los datos de la pila y enviarlos a un TAD Cola. Muestre los tres primeros datos del TAD Cola para verificar que los datos se han enviando apropiadamente. 4. Seleccione un tipo abstracto de datos para guardar en un calendario N nodos. Cada nodo podrá almacenar una fecha y una actividad que se realizará en esa fecha. Ej , Realizar la práctica de computación II , Examen de computación II. Cuando una actividad se cumpla deberá ser eliminada del calendario. 5. Implemente una aplicación que permita almacenar los siguientes datos que componen el registro de una persona: Nombre, edad y estatura. Ingrese N registros y luego muestre el contenido entero del TAD. 6. Elija el TAD apropiado para: a. Almacenar N ventas (deberá almacenar: Producto, precio y descuento). b. Mostrar las últimas tres ventas del día. c. Mostrar el contenido completo del TAD. d. Encontrar cuál fué la mayor de las ventas. Página 16

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos.

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Con relación a la Estructura LISTA Indicar objetos reales que se puedan modelar con dicha estructura. Listas de Ordenes de visitas

Más detalles

Tema: Tipos Abstractos de Datos (TAD s) en C#.

Tema: Tipos Abstractos de Datos (TAD s) en C#. Programación II. Guía No. 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C#. Objetivos Comprender el concepto Tipo Abstracto de Datos

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS)

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 200 UNAN LEON Departamento de Computación Ingeniería en Sistema y Telemática Docente: Ing. Juan Carlos Antón S. Asignatura: Algoritmo y Estructuras de Datos ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) Pilas

Más detalles

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos

Más detalles

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo

Más detalles

Estructura de Datos. Unidad de Aprendizaje: Unidad de Competencia II: Estructuras de Datos Lineales. M. en C. Edith Cristina Herrera Luna

Estructura de Datos. Unidad de Aprendizaje: Unidad de Competencia II: Estructuras de Datos Lineales. M. en C. Edith Cristina Herrera Luna Ingeniería en Computación Unidad de Aprendizaje: Estructura de Datos Unidad de Competencia II: Estructuras de Datos Lineales Marzo 2015 M. en C. Edith Cristina Herrera Luna ESTRUCTURAS DE DATOS Propósito

Más detalles

Solución práctico 6 Tipos Abstractos de Datos Lista, Pila y Cola

Solución práctico 6 Tipos Abstractos de Datos Lista, Pila y Cola Objetivos Trabajar sobre el Tipo Abstracto de Datos Lista, reforzando el desacople entre especificación e implementación. Retomar las implementaciones vistas, como ser Listas Doblemente Encadenadas, Listas

Más detalles

Estructura de datos Colas

Estructura de datos Colas Estructura de Datos Estructura de datos Colas Temario Unidad II 2.1 Definición y operaciones 2.2 Implementación estática 2.3 Implementación dinámica 2.4 Colas de prioridad 2.5 Casos de estudio 1 Definición

Más detalles

PILAS. Prof. Ing. M.Sc. Fulbia Torres

PILAS. Prof. Ing. M.Sc. Fulbia Torres S ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS PILAS Definición. Operaciones. Implementación secuencial. Aplicaciones. Ejemplos. Ejercicios. DEFINICIÓN Una PILA (o stack) es una estructura

Más detalles

Tema 5. Estructura de datos Pila

Tema 5. Estructura de datos Pila Tema 5. Estructura de datos Pila http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la

Más detalles

Estructuras Dinámicas de datos.

Estructuras Dinámicas de datos. Estructuras Dinámicas de datos. Las estructuras dinámicas de datos son estructuras que crecen a medida que ejecuta un programa. Una estructura dinámica de datos es una colección de elementos llamadas nodos

Más detalles

Segundo Parcial de Programación 2 7 de junio de 2017

Segundo Parcial de Programación 2 7 de junio de 2017 Instituto de Computación. Facultad de Ingeniería. Universidad de la República Segundo Parcial de Programación 2 7 de junio de 2017 Problema 1 (30 puntos) Considere un TAD T que permita almacenar a lo sumo

Más detalles

Tema: Tipos Abstractos de Datos (TAD s) en C++.

Tema: Tipos Abstractos de Datos (TAD s) en C++. Programación II. Guía 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C++. Objetivos Específicos Explicar el concepto "Tipo Abstracto

Más detalles

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ Fichero nodo.h #ifndef NODO_H #define NODO_H const int cantidad_nodos = 10; class Nodo private: string dato; Nodo* siguiente; public: Nodo(); void setdato(string

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C 2013 ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C Departamento de Computación UNAN-León TEMA 4: ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 4.1 INTRODUCCIÓN: En términos de listas lineales, una pila puede ser

Más detalles

UNIDAD 2. ESTRUCTURAS DE DATOS SECUENCIALES. 1. Pilas (Stacks)

UNIDAD 2. ESTRUCTURAS DE DATOS SECUENCIALES. 1. Pilas (Stacks) UNIDAD 2. ESTRUCTURAS DE DATOS SECUENCIALES 1. Pilas (Stacks) Una pila es una coleccion de elementos en la que sólo se pueden insertar y eliminar datos por uno de los extremos de la lista. Al igual que

Más detalles

Estructuras Dinámicas

Estructuras Dinámicas Departamento de Lenguajes yciencias de la Computación 4 Estructuras Dinámicas Contenido 1. Gestión dinámica de memoria. 2. El tipo puntero. 3. Operaciones con punteros. 4. Operaciones básicas sobre listas

Más detalles

ESTRUCTURAS DE DATOS Y ALGORITMOS

ESTRUCTURAS DE DATOS Y ALGORITMOS ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno

Más detalles

Tema 03: TAD Cola. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 03: TAD Cola. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 03: TAD Cola M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Descripción del TAD Cola Especificación

Más detalles

Un hombre caminaba por el bosque cuando vió una zorra lisiada. " Cómo hará para alimentarse?", pensó.

Un hombre caminaba por el bosque cuando vió una zorra lisiada.  Cómo hará para alimentarse?, pensó. Capitulo III Colas El camino del Tigre Un hombre caminaba por el bosque cuando vió una zorra lisiada. " Cómo hará para alimentarse?", pensó. En ese momento, se acercó un tigre, con un animal entre los

Más detalles

Tipos Recursivos de Datos

Tipos Recursivos de Datos 1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),

Más detalles

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS LISTAS ENLAZADAS FUNDAMENTOS TEORICOS 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»

Más detalles

Tema 6. Gestión dinámica de memoria

Tema 6. Gestión dinámica de memoria Tema 6. Gestión dinámica de memoria http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, [email protected] Estructuras de datos y de la

Más detalles

Las FILAS. ING PEDRO BELTRÁN CANESSA Estructuras de Datos 1

Las FILAS. ING PEDRO BELTRÁN CANESSA Estructuras de Datos 1 Las FILAS Estructuras de Datos 1 LA FILA (Conceptos...) Es un contenedor que utiliza el protocolo FIFO (First In, First Out) o bien, PEPS (Primeras Entradas, Primeras Salidas) Entrada Salida Estructuras

Más detalles

Capítulo. Listas, pilas y colas en C. Contenido. Introducción

Capítulo. Listas, pilas y colas en C. Contenido. Introducción Capítulo 32 Listas, pilas y colas en C Contenido Listas enlazadas Clasificación de listas enlazadas Operaciones en listas enlazadas Inserción de un elemento en una lista Búsqueda de un elemento de una

Más detalles

Programación. Test Autoevaluación Tema 3

Programación. Test Autoevaluación Tema 3 Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Implementaciones de pilas, colas y afines. Memoria dinámica.

Implementaciones de pilas, colas y afines. Memoria dinámica. Implementaciones de pilas, colas y afines. Memoria dinámica. 1 1 Departamento de Computación, FCEyN, Universidad de Buenos Aires, Buenos Aires, Argentina Algoritmos y Estructuras de Datos II, segundo cuatrimestre

Más detalles

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año - Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En

Más detalles

Unidad I Tipos de Datos en C

Unidad I Tipos de Datos en C Tipos de Datos en C 1. El concepto de los tipos de datos. 2. Tipos de datos básicos del C. 3. Modificadores de tipo. 4. Declaración de variables. 5. Inicialización de variables. 6. Declaración de identificadores

Más detalles

Tema 02: TAD Pila. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 02: TAD Pila. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 02: TAD Pila M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Descripción

Más detalles

GENERACIÓN DE CÓDIGO INTERMEDIO ÁRBOLES DE SINTAXIS ABSTRACTA (ASA)

GENERACIÓN DE CÓDIGO INTERMEDIO ÁRBOLES DE SINTAXIS ABSTRACTA (ASA) Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

TAD: Pila. TALLER: TAD Pila

TAD: Pila. TALLER: TAD Pila TALLER: TAD Una pila (stack) es un conjunto de elementos del mismo tipo que solamente puede crecer o decrecer por uno de sus extremos. Una pila también se la conoce con el nombre de estructura de tipo

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación

Más detalles

Es un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos.

Es un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos. Lenguaje C Un poco de historia C es un lenguaje de propósito general, es decir, se pueden desarrollar aplicaciones de diversas áreas. Dentro de sus principales características podemos mencionar que: Es

Más detalles

Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES

Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES Estructura de datos y algoritmos Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES 4.1 Introducción 4.2 Ejemplos de TDA dinámicos lineales 4.3 Pilas 4.3.1

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Colonia, Uruguay 15 de marzo de 2016 Programación 2 Introducción al lenguaje C 15 de marzo de 2016 1 / 34 Objetivos

Más detalles

Capitulo V Listas Enlazadas

Capitulo V Listas Enlazadas Capitulo V Listas Enlazadas Muere lentamente, quien abandona un proyecto antes de iniciarlo, no preguntando de un asunto que desconoce o no respondiendo cuando le indagan sobre algo que sabe. Evitemos

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C

ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C 2013 ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C Departamento de Computación UNAN-León TEMA 5: ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) 5.1 INTRODUCCIÓN: Las colas son secuencias de elementos caracterizadas

Más detalles

Apuntadores en C y C++

Apuntadores en C y C++ Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta

Más detalles

Implementación de las Clases Pila, Cola, Lista y Arbol

Implementación de las Clases Pila, Cola, Lista y Arbol 1/1 Implementación de las Clases Pila, Cola, Lista y Arbol Josefina Sierra Santibáñez 28 de noviembre de 2017 2/1 Implementación de Estructuras de Datos Implementaremos cada estructura de datos en dos

Más detalles

Pilas, Colas. Andrea Rueda. Estructuras de Datos. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas

Pilas, Colas. Andrea Rueda. Estructuras de Datos. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Pilas, Colas Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Quiz: STL Quiz: STL Standard Template Library (STL) std::vector - Arreglo dinámico,

Más detalles

Unidad III: Estructuras lineales

Unidad III: Estructuras lineales Unidad III: Estructuras lineales Listas En Ciencias de la Computación, una lista enlazada es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos.

Más detalles

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación 1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos

Más detalles

Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz

Tema 8. Listas.  José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz Tema 8. Listas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat

Más detalles

Estructura de Datos: Lista. Facultad Ingeniería y Tecnología Informática Tecnicatura en Programación de Computadoras. Autora: Prof.

Estructura de Datos: Lista. Facultad Ingeniería y Tecnología Informática Tecnicatura en Programación de Computadoras. Autora: Prof. Facultad Ingeniería y Tecnología Informática Tecnicatura en Programación de Computadoras Estructura de Datos: Lista Autora: Lunes a viernes de 9 a 21 h. Torre Universitaria, Zabala 1837, primer nivel inferior.

Más detalles

1.2.4 Listas enlazadas

1.2.4 Listas enlazadas 1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina

Más detalles

APUNTES PROII 2º PARCIAL.

APUNTES PROII 2º PARCIAL. APUNTES PROII 2º PARCIAL. MEMORIA DINÁMICA. Hay que distinguir entre: Estática: memoria que se reserva en tiempo de compilación. Dinámica: memoria que se reserva en tiempo de ejecución. 5 pasos: 1. Declaración

Más detalles

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

Tema 13: Apuntadores en C

Tema 13: Apuntadores en C Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

Estructuras Enlazadas AyED UTN-BA

Estructuras Enlazadas AyED UTN-BA Funciones para estructuras enlazadas Sin Plantilla El Nodo Con plantilla para un dato genérico en info El Nodo struct Nodo1 int info; Nodo* sig; ; Nodo1* p1 = new Nodo1(); struct Nodo2 string info; Nodo*

Más detalles

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y distribución. Listas Enlazadas Estructuras de datos dinámicas

Más detalles

Programación TADs Lineales Lista Pila Cola

Programación TADs Lineales Lista Pila Cola Programación 2 7- TADs Lineales Lista Pila Cola 1 TAD LISTA 2 Definición Hemos visto la definición inductiva de listas. Más precisamente, definimos inductivamente los tipos Alista, para cualquier tipo

Más detalles

Biblioteca de templates. template <typename T> void eliminar(t arr[], int& len, int pos);

Biblioteca de templates. template <typename T> void eliminar(t arr[], int& len, int pos); ALGORITMOS Y ESTRUCTURA DE DATOS Machete Oficial 2014 Operaciones sobre arrays Biblioteca de templates Función: agregar Agrega el valor v al final del array arr e incrementa su longitud len. void agregar(t

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION CICLO: 01/ 2012 Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: MATERIA: GUIA DE LABORATORIO #10 Programación

Más detalles

obtenidos a partir de los objetos que manipula. un nuevo paradigma de programación, La POO es Clases su forma de módulo.

obtenidos a partir de los objetos que manipula. un nuevo paradigma de programación, La POO es Clases su forma de módulo. (a) definición (b) elementos y notación (c) modelo de computación (d) ejecución de un sistema (e) exportación selectiva Clases Programación Orientada a Objetos DCIC UNS 2002 47 La POO es un nuevo paradigma

Más detalles

ESTRUCTURAS. Struct Identificador_ tipo_estructura { Tipo miembro_1; /*Declaración de los miembros*/

ESTRUCTURAS. Struct Identificador_ tipo_estructura { Tipo miembro_1; /*Declaración de los miembros*/ DECLARACION DE ESTRUCTURAS ESTRUCTURAS La estructura es una colección de variables, la cual puede poseer distintos tipos de datos (a diferencia de los arreglos que solamente pueden tener un solo tipo de

Más detalles

TIPO DE DATO ABSTRACTO (TDA)

TIPO DE DATO ABSTRACTO (TDA) TIPO DE DATO ABSTRACTO (TDA) Ing. Eduard Antonio Lozano Córdoba Nota: Toda la información fue copiada de: Libros físicos e Internet Actividad Extra Clases #include #include int binario(int

Más detalles

Hoja de ejercicios del Tema 9

Hoja de ejercicios del Tema 9 Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Programación de sistemas Pilas y Colas

Programación de sistemas Pilas y Colas Programación de sistemas Pilas y Colas Departamento de Ingeniería Telemática 1 Contenidos Pilas (stacks) Colas (queues) Colas dobles (deques double-ended queues) 2 Pilas Estructura de datos lineal Inserción

Más detalles

Autoestudio 2: Variables y Operadores

Autoestudio 2: Variables y Operadores Autoestudio 2: Variables y es Componentes de un programa Cuando escribimos en un lenguaje de programación tenemos que entender la sintaxis del lenguaje. A continuación empezaremos con la sintaxis básica

Más detalles

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 3: ESTRUCTURAS DINÁMICAS LINEALES. LISTAS ENLAZADAS, PILAS Y COLAS

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 3: ESTRUCTURAS DINÁMICAS LINEALES. LISTAS ENLAZADAS, PILAS Y COLAS Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 3: ESTRUCTURAS DINÁMICAS LINEALES. LISTAS ENLAZADAS, PILAS Y COLAS ÍNDICE Listas enlazadas Pilas Colas DEFINICIÓN DEL TIPO LISTA

Más detalles

Apuntadores (Punteros)

Apuntadores (Punteros) Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable

Más detalles

Segundo parcial de Programación 2

Segundo parcial de Programación 2 Generalidades: Segundo parcial de Programación 2 a. La prueba es individual y sin material. b. La duración es 3hs. c. Sólo se contestan dudas acerca de la letra. 8 de Julio de 2016 d. Escriba las hojas

Más detalles

Pilas y Colas. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores

Pilas y Colas. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores Pilas y Colas Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Pilas Estructura Operaciones Ejemplos de aplicación Implementación Colas Definición Operaciones

Más detalles

Arboles Binarios de Búsqueda en C++

Arboles Binarios de Búsqueda en C++ Arboles Binarios de Búsqueda en C++ por CCG/Mayo-2014 Tema de Arboles Binarios de Búsqueda, como un poco de teoría para su mejor entendimiento seguidamente mostrare la implementación en lenguaje de programación

Más detalles

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo. Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.

Más detalles

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo. Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS)

ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS) 2010 UNAN LEON Departamento de Computación Ing. En Sistemas Sabatino Docente: Ing. Karina Esquivel A. Asignatura: Practicas Profesionales. ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS) TEMA 3: ESTRUCTURAS DINÁMICAS

Más detalles

Cadena de caracteres. 1. Fundamentos de cadenas y caracteres

Cadena de caracteres. 1. Fundamentos de cadenas y caracteres 1. Fundamentos de cadenas y caracteres Cadena de caracteres Los caracteres son bloques de construcción fundamentales para los programas fuente. Un programa puede contener constantes de carácter. Una constante

Más detalles

Trabajo Práctico Nº 10 Estructuras Dinámicas: Pila y Cola.

Trabajo Práctico Nº 10 Estructuras Dinámicas: Pila y Cola. Trabajo Práctico Nº 10 Estructuras Dinámicas: Pila y Cola. Objetivo: Interiorizarnos en la creación y en el manejo de estructuras Dinámicas (Pila y Cola) definidas por desarrollador. PILA Una PILA es una

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

directamente indirectamente

directamente indirectamente PUNTEROS EN C PUNTEROS Permiten simular el pasaje de parámetros por referencia. Permiten crear y manipular estructuras de datos dinámicas. Su manejo es de fundamental importancia para poder programar en

Más detalles

Universidad Don Bosco (UDB) Facultad de Ingeniería / Escuela de Computación

Universidad Don Bosco (UDB) Facultad de Ingeniería / Escuela de Computación UNIDAD 6: APUNTADORES O PUNTEROS CONTENIDOS 6.1. Introducción a los apuntadores o punteros 6.1.1. Parámetros de dirección Parámetros de referencia 6.1.2. Apuntadores o punteros Diferencias entre una referencia

Más detalles

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año - Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En

Más detalles

ALGORITMOS II PSEUDOCODIGOS INTRODUCCION AL PSEINT CORPODICES VICTOR ANDRES OCHOA CORREA

ALGORITMOS II PSEUDOCODIGOS INTRODUCCION AL PSEINT CORPODICES VICTOR ANDRES OCHOA CORREA ALGORITMOS II PSEUDOCODIGOS INTRODUCCION AL PSEINT CORPODICES VICTOR ANDRES OCHOA CORREA CONTENIDOS Definición de un algoritmo Tipos de datos Representaciones de un algoritmo Lenguaje natural Pseudocódigo

Más detalles

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona

Más detalles

Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés

Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Índice general:. Modelo y Aplicación de Lista con Punto de Interés

Más detalles

Tema: Punteros.Puntero this en C#.

Tema: Punteros.Puntero this en C#. POO. Guía No.7 1 Tema: Punteros.Puntero this en C#. Facultad: Ingeniería Escuela: Computación Asignatura: Programación Orientada a Objetos Materiales y Equipo Computadora con el software C#. Guía Número

Más detalles

ASIGNATURA: ESTRUCTURA DE DATOS II

ASIGNATURA: ESTRUCTURA DE DATOS II ASIGNATURA: ESTRUCTURA DE DATOS II Cód: 31-206 Régimen cuatrimestral Horas reloj semanales: 4 Horas teóricas: 15 Horas prácticas: 45 Horas totales: 60 Carrera: Sistemas 2016 FUNDAMENTOS: Un tipo de dato

Más detalles

Tema 5 Tabla de Símbolos

Tema 5 Tabla de Símbolos Traductores, Compiladores e Intérpretes 1 Tema 5 También se la llama tabla de nombres o tabla de identificadores y tiene dos funciones principales: - Efectuar chequeos semánticos. - Generación de código.

Más detalles

Tema 6: Memoria dinámica

Tema 6: Memoria dinámica : Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0

Más detalles

Para la Implementación Dinámica de listas: Se usa la asignación dinámica de memoria mediante punteros o referencias.

Para la Implementación Dinámica de listas: Se usa la asignación dinámica de memoria mediante punteros o referencias. Tema: Listas simple encadenadas. Manejo de pilas y colas dinámicas Objetivos: Que los alumnos logren Capacidad para usar, en forma eficiente los diagramas UML básicos. Habilidad para identificar las distintas

Más detalles

Lenguaje C, tercer bloque: Funciones

Lenguaje C, tercer bloque: Funciones Lenguaje C, tercer bloque: Funciones José Otero 1 Departamento de informática Universidad de Oviedo 28 de noviembre de 2007 Índice 1 Tipo puntero Concepto de puntero Operador dirección Operador indirección

Más detalles

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación TUTORIAL PSEINT Ing. Ronald Rentería Ayquipa Fundamentos de Programación PSEINT Página Oficial: http://pseint.sourceforge.net/ Es un software que interpreta pseudocódigo. Permite la generación de diagramas

Más detalles