LISTAS. Prof. Ing. M.Sc. Fulbia Torres

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

Download "LISTAS. Prof. Ing. M.Sc. Fulbia Torres"

Transcripción

1 LISTAS ESTRUCTURAS DE DATOS 2006 Prof.

2 UNIDAD II ESTRUCTURAS DE DATOS LISTAS Definición. Representación de Listas. Lista Lineal Simplemente Enlazada. Operaciones TAD LLSE. Implementación Dinámica. Otras Listas. Ejercicios.

3 LISTAS DEFINICIÓN Una LISTA es un conjunto ordenado de elementos homogéneos, en la que no hay restricciones de acceso, la introducción y borrado de elementos puede realizarse en cualquier posición de la misma.

4 LISTAS DEFINICIÓN Cuando hablamos de un conjunto ordenado, nos referimos a la disposición de sus elementos y no a su valor. Esto es que cada uno de ellos, salvo el primero y el último, tienen un anterior y un siguiente. Por otro lado, al decir que los elementos de la lista son homogéneos, queremos decir que son del mismo tipo base, aunque sin establecer ninguna limitación sobre este tipo. Se trata de una estructura dinámica, ya que su tamaño cambia a medida que se añaden y eliminan elementos de la misma.

5 LISTAS CARACTERÍSTICAS La cantidad reservada de almacenamiento para la pila o la cola es fija. Vimos pilas y colas alojadas en arreglos. Problemas al insertar o eliminar elementos. Una representación secuencial, refleja el orden lógico de los elementos fisicamente almacenados en la lista; el orden físico y lógico son los mismos.

6 LISTAS CARACTERÍSTICAS Solución a los problemas de movimiento de los datos que se ha encontrado al utilizar representaciones secuenciales. Con la representación no secuencial el orden lógico y físico de los elementos no es necesario que sea el mismo. el orden El orden lógico se representa de tal forma que cada elemento apunta al siguiente elemento, es decir, se encuentran ligados.

7 LISTA LINEAL SIMPLEMENTE ENLAZADA CARACTERÍSTICAS Lista Info sig Info sig Info sig Info sig Info sig Cada elemento se llama nodo. Se accesa a toda la lista a partir de un apuntador externo llamado Lista que apunta(contiene la dirección de) el primer nodo en la lista. Cada nodo tiene dos secciones: el contenido de datos (Info) y el campo del apuntador (sig). El campo Info(de información) contiene el elemento real en la lista. El campo sig(dirección siguiente) contiene la dirección del siguiente nodo en la lista. Tal dirección se conoce como apuntador. El último nodo tiene un apuntador nulo.

8 LISTA LINEAL SIMPLEMENTE ENLAZADA CARACTERÍSTICAS Lista Info sig Info sig Info sig Info sig Info sig Cada nodo es una estructura de datos de tipo registro. Los nodos enlazados no tienen que estar fisicamente adyacentes. Una lista vacía es aquella que no contiene nodos. Lista=NULL. Para remover un nodo, sólo es necesario cambiar el apuntador del nodo previo para que apunte al nodo siguiente. Para insertar un nuevo nodo, sólo es necesario cambiar el apuntador del nodo previo para que apunte al nodo nuevo, y el apuntador del nodo nuevo apunte al siguiente.

9 LISTA LINEAL SIMPLEMENTE ENLAZADA CARACTERÍSTICAS Operacionescon listas: Recorrido de la lista. Inserción de un elemento. Borrado de un elemento. Búsqueda de un elemento.

10 LISTA LINEAL SIMPLEMENTE ENLAZADA TAD:LISTAS Operaciones: CONSTRUCTORAS Crea una lista vacía. CrearLista: Lista

11 LISTA LINEAL SIMPLEMENTE ENLAZADA TAD:LISTAS MODIFICADORAS Dada una lista y un valor e, del tipo base, forma una nueva lista al añadir el elemento al inicio de la lista. InsertarInicio: Lista x tipo_base Lista Dada una lista y un valor e, del tipo base, forma una nueva lista al añadir el elemento al final de lista. InsertarFinal: Lista x tipo_base Lista

12 LISTA LINEAL SIMPLEMENTE ENLAZADA TAD:LISTAS MODIFICADORAS Dada una lista y un valor e, del tipo base, forma una nueva lista al añadir el elemento en un nodo que sigue al nodo apuntado por p. InsertarDespues: Lista x tipo_base Lista Dada una lista, forma la lista resultante de eliminar el elemento situado al principio de la lista (primer elemento). ElimPrim: Lista Lista

13 LISTA LINEAL SIMPLEMENTE ENLAZADA TAD:LISTAS MODIFICADORAS Dada una lista, forma la lista resultante de eliminar el elemento situado al final de la lista (último elemento). ElimFinal: Lista Lista Dada una lista, forma la lista resultante de eliminar el nodo que sigue al nodo apuntado por p. ElimDespues: Lista Lista

14 LISTA LINEAL SIMPLEMENTE ENLAZADA TAD:LISTAS ANALIZADORAS Dada una lista, hace el recorrido por la lista mostrando el campo info. RecorrerList: Lista Lista Dada una lista, devuelve el valor verdadero si la lista está vacía y falso en caso contrario. ListaVacia: Lista lógico

15 LISTA LINEAL SIMPLEMENTE ENLAZADA TAD:LISTAS ANALIZADORAS Dada una lista, devuelve el número de elementos de la lista. LongLista: Lista tipo_base DESTRUCTORA Destruye la lista retornando toda la memoria ocupada. BorrarLista: Lista

16 LISTA LINEAL SIMPLEMENTE ENLAZADA DEFINICIÓN # define NULL 0 struct lista { tipo_base info; lista *prox; };

17 LISTA LINEAL SIMPLEMENTE ENLAZADA Con esta definición de Lista las operaciones asociadas especificadas en el TAD quedarían del siguiente modo: Crea una lista vacía int CrearLista(lista **p) { *p=null; };

18 LISTA LINEAL SIMPLEMENTE ENLAZADA Dada una lista y un valor e, del tipo base, forma una nueva lista al añadir el elemento al inicio de la lista. void InsertarInicio(lista **p, tipo_base dato) { lista *n; n=new lista; n->info=dato; n->prox=*p; *p=n; };

19 LISTA LINEAL SIMPLEMENTE ENLAZADA Dada una lista y un valor e, del tipo base, forma una nueva lista al añadir el elemento al final de lista. void InsertarFinal(lista **p, tipo_base dato) { lista *n,*m; }; m=*p; while(m->prox!=null) m=m->prox; n=new lista; n->info=dato; n->prox=null; m->prox=n;

20 LISTA LINEAL SIMPLEMENTE ENLAZADA Dada una lista y un valor e, del tipo base, forma una nueva lista al añadir el elemento en un nodo que sigue al nodo apuntado por p. void InsertarDespues(lista **p,tipo_base dato) {lista *q; if (p==null) { cout<<" Evite Inserción"; exit(1); } else { q=new lista; q->info=dato; q->prox=(*p)->prox; (*p)->prox=q; } };

21 LISTA LINEAL SIMPLEMENTE ENLAZADA Dada una lista, forma la lista resultante de eliminar el elemento situado al principio de la lista (primer elemento). void ElimPrim(lista**p) { lista *n; }; n=*p; *p=(*p)->prox; delete n;

22 LISTA LINEAL SIMPLEMENTE ENLAZADA Dada una lista, forma la lista resultante de eliminar el elemento situado al final de la lista (último elemento). void ElimFinal(lista **p) { lista *n,*m; }; if ((*p)->prox==null) { *p=null; delete *p; } else n=*p; while(n->prox!=null) { m=n; } n=n->prox; m->prox=null; delete n;

23 LISTA LINEAL SIMPLEMENTE ENLAZADA Dada una lista, forma la lista resultante de eliminar el nodo que sigue al nodo apuntado por p. void ElimDespues(lista **p) { lista *q; }; if (p==null) { cout<<" Evite Eliminar"; else } exit(1); } { q=(*p)->prox; if (q==null) else { cout<<" Nodo no existe "; exit(1); } { (*p)->prox=q->prox; delet (q); }

24 LISTA LINEAL SIMPLEMENTE ENLAZADA Dada una lista, hace el recorrido por la lista mostrando el campo info. void RecorrerList(lista **p) { lista *q; q=*p; while (q!=null) { cout<<q->info<<" "; } q=q->prox; };

25 LISTA LINEAL SIMPLEMENTE ENLAZADA Dada una lista, devuelve el valor verdadero si la lista está vacía y falso en caso contrario. int ListaVacia(lista **p) { if (p=null); return (1) else return (0); };

26 LISTA LINEAL SIMPLEMENTE ENLAZADA Dada una lista, devuelve el número de elementos de la lista. int LongLista(lista **p) { lista *q; int conta=0; }; q=*p; while (q!=null) { conta=conta+1; q=q->prox; } return (conta);

27 LISTA LINEAL SIMPLEMENTE ENLAZADA Destruye la lista retornando toda la memoria ocupada. void BorrarLista(lista **p) { while((*p)->prox!=0) *p=(*p)->prox; } delete *p;

28 LISTA LINEAL DOBLEMENTE ENLAZADA Uno de los problemas que plantea la implementación dinámica mediante enlace simple es el coste de insertar y borrar nuevos elementos en la lista. En varios casos es necesario recorrerla desde el principio para poder acceder al elemento anterior al dado como parámetro. Además, tan sólo es posible recorrer la lista así enlazada en una sola dirección. Para solucionar ambos problemas se puede utilizar una lista lineal doblementa enlazada.

29 LISTA LINEAL DOBLEMENTE ENLAZADA DEFINICIÓN Una lista doblemente enlazada es una colección de nodos, en la cual cada nodo contiene dos apuntadores uno a su antecesor y otro a su sucesor. Las listas doblemente enlazadas pueden ser lineales, circulares y pueden contener o no un nodo de encabezado. Los nodos de una lista doblemente enlazada contiene tres campos: un campo info que contiene la información almacenada en el nodo, y los campos izq y der que contienen apuntadores a nodos en alguno de los dos lados. Ver figura.

30 LISTA LINEAL DOBLEMENTE ENLAZADA DEFINICIÓN Izq info der Izq info der Izq info der Izq info der info : contiene la información almacenada en el nodo. izq y der : contienen apuntadores a nodos en alguno de los dos lados.

31 LISTA LINEAL DOBLEMENTE ENLAZADA DEFINICIÓN # define NULL 0 struct lista { lista *izq; tipo_base info; lista *der; };

32 LISTA LINEAL DOBLEMENTE ENLAZADA Crea una lista vacía int CrearListaD(lista **p) { *p=null; }

33 LISTA LINEAL DOBLEMENTE ENLAZADA Dada una lista y un valor e, del tipo base, forma una nueva lista al añadir el elemento al inicio de la lista. void InsertPrincD(lista **p, tipo_base k) { lista *n; }; n=new lista; n->izq=null; n->info=k; n->der=*p; (*p)->izq=n; *p=n;

34 LISTA LINEAL DOBLEMENTE ENLAZADA Dada una lista y un valor e, del tipo base, forma una nueva lista al añadir el elemento al final de la lista. void InsertUltD(lista **p, tipo_base k) { lista *n,*m; m=*p; while(m->der!=null) { m=m->der; } n=new lista; n->info=k; n->der=null; m->der=n; n->izq=m; };

35 LISTA LINEAL DOBLEMENTE ENLAZADA Dada una lista y un valor e, del tipo base, forma una nueva lista al añadir el elemento a la izquierda del nodo apuntado por p. void InsertIzqD(lista **p, tipo_base k) { lista *n,*m,*q; q=*p; n=new lista; n->info=k; n->izq=q->izq; n->der=q; if (q->izq!=null) { m=q->izq; m->der=n; } else p=n; q->izq=n; };

36 LISTA LINEAL DOBLEMENTE ENLAZADA Dada una lista y un valor e, del tipo base, forma una nueva lista al añadir el elemento a la derecha del nodo apuntado por p. void InsertDerD(lista **p, tipo_base k) { lista *n,*m,*q; q=*p; n=new lista; n->info=k; if (q==null) { n->izq=null; n->der=null; q=n; } else { m=q->der; if (m!=null) m->izq=n; n->der=m; n->izq=q; q->der=n; } };

37 LISTA LINEAL DOBLEMENTE ENLAZADA Dada una lista, forma la lista resultante de eliminar el elemento situado al principio de la lista (primer elemento). void ElimPrimcD(lista **p) { lista *n; }; n=*p; *p=(*p)->der; (*p)->izq=null; delete n;

38 LISTA LINEAL DOBLEMENTE ENLAZADA Dada una lista, forma la lista resultante de eliminar el elemento situado al final de la lista (último elemento). void ElimUltD(lista **p) { lista *n,*m; n=*p; while(n->der!=null) { n=n->der; } m=n->izq; m->der=null; delete n; };

39 LISTA LINEAL DOBLEMENTE ENLAZADA Dada una lista, forma la lista resultante de eliminar el elemento situado a la derecha del nodo apuntado por p. void ElimDerD(lista**p) { lista *q,*n,*m; } q=*p; n=q->der; if (n==null) {cout << Evite eliminar ; exit(1); } else { q->der=n->der; m=n->der; m->izq=n->izq; delete n;}

40 LISTA LINEAL DOBLEMENTE ENLAZADA Dada una lista, forma la lista resultante de eliminar el elemento situado a la izquierda del nodo apuntado por p. void ElimIzqD(lista**p) { lista *q,*n,*m; q=*p; n=q->izq if (n == NULL) {cout << Evite eliminar ; exit(1); } else {q->izq=n->izq; m=n->izq; m->der=q; delete n; } }

41 LISTAS CIRCULARES La lista encadenada circular es una ligera variante de la lista encadenada lineal; se obtiene al considerar el primer nodo de la lista como el sucesor del último nodo, almacenando la dirección del primer elemento en el campo de dirección del último, en lugar de almacenar la dirección nula. Al realizar esta modificación se genera automáticamente un círculo, donde realmente ya no existe ni el primero ni un último elemento.

42 LISTAS CIRCULARES CARACTERÍSTICAS Es necesario mantener un apuntador general a la estructura (Lista), aunque ya no apunte obligatoriamente al primer elemento. La dirección nula no existe en la lista, excepto cuando la lista está vacía. Si la lista contiene un solo elemento, el campo de dirección apuntará a ese mismo nodo. Como la lista es un círculo, es posible llegar a cualquier nodo de la lista a partir de cualquiera de sus nodos.

43 LISTAS CIRCULARES CARACTERÍSTICAS Ver figura. Info sig Info sig Info sig Info sig Info sig Lista Circular Simplemente Enlazada

44 LISTA CIRCULAR SIMPLEMENTE ENLAZADA DEFINICIÓN # define NULL 0 struct ListaCirc { tipo_base info; ListaCirc *prox; };

45 LISTA CIRCULAR SIMPLEMENTE ENLAZADA Crea una lista circular vacía int CrearListaCSE(lista **p) { *p=null; }

46 LISTA CIRCULAR SIMPLEMENTE ENLAZADA Dada una lista circular y un valor e, del tipo base, forma una nueva lista circular al añadir el elemento al iniciar la lista. void InsertarLCSE(ListaCirc **p, int dato) { ListaCirc *q; q=new ListaCirc; q->info=dato; *p=q; q->prox=*p; }

47 LISTA CIRCULAR SIMPLEMENTE ENLAZADA Dada una lista circular y un valor e, del tipo base, forma una nueva lista circular al añadir el elemento después del nodo apuntado por p. void InsertarDespLCSE(ListaCirc **p, int dato) { ListaCirc *n,*q; n=*p; } q=new ListaCirc; q->info=dato; q->prox=n->prox; n->prox=q; *p=q;

48 LISTA CIRCULAR SIMPLEMENTE ENLAZADA Dada una lista circular, forma la lista circular resultante de eliminar el nodo que sigue al nodo apuntado por p. void EliminarDespLCSE(ListaCirc **p) { ListaCirc *q; } if ((*p)==null){ cout<< "Evitar Eliminar"; //exit(1); } else{ q=(*p)->prox; (*p)->prox=q->prox; delete(q); }

49 LISTA CIRCULAR SIMPLEMENTE ENLAZADA Dada una lista circular, devuelve el valor verdadero si la lista circular está vacía y falso en caso contrario. int ListaVaciaCSE(lista **p) { if (p=null); return (1) else return (0); };

50 LISTA CIRCULAR SIMPLEMENTE ENLAZADA { Dada una lista circular, hace el recorrido por la lista circular mostrando el campo info. void ReccorrerListaCircSE (ListaCirc **p) ListaCirc *q,*z; z=*p; } q=z->prox; while (q!=z) { cout<< q->info <<" "; q=q->prox; } cout << q->info <<" ";

51 LISTA CIRCULAR SIMPLEMENTE ENLAZADA Dada una lista circular, devuelve el número de elementos de la lista. int LongListaCirc (ListaCirc *p) { ListaCirc *r,*q; int cont; } cont=0; r=null; q=p->prox; while (q!=r) { if(r==null) r=q; cont=cont+1; q=q->prox; } return (cont);

52 LISTA CIRCULAR SIMPLEMENTE ENLAZADA Destruye la lista circular retornando toda la memoria ocupada. void BorrarListaCSE (ListaCirc **p) { ListaCirc *q; } q=*p; q=q->prox; delete (q);

53 LISTA CIRCULAR SIMPLEMENTE ENLAZADA Imprime cada nodo de información de la lista circular. void ImprimirListaCSE(ListaCirc *L1) { ListaCirc *r,*p; r=null; p=l1->prox; } while (r!=p) { if (r==null) r=p; cout << p->info <<" "; p=p->prox; }

54 Función que concatena dos listas circulares simplemente enlazadas. ListaCirc *concatenarcse(listacirc **p, ListaCirc**q) { ListaCirc *n,*m,*r; n=*p; m=*q; if (n==null) n=m; } else if(m!=null) { r=n->prox; n->prox=m->prox; m->prox=r; n=m; } return n;

55 GRACIAS POR SU ATENCIÓN HASTA LA PRÓXIMA CLASE

Unidad Nº V Listas Enlazadas

Unidad Nº V Listas Enlazadas Instituto Universitario Politécnico Santiago Mariño Unidad Nº V Listas Enlazadas Lista Enlazadas Es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta

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

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

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

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006 ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los

Más detalles

PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS

PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: 1. Objetivo PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS El alumno comprenderá y aplicara

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, sanchiz@icc.uji.es Estructuras de datos y de la

Más detalles

COLAS CIRCULARES. Prof. Ing. M.Sc. Fulbia Torres

COLAS CIRCULARES. Prof. Ing. M.Sc. Fulbia Torres ESTRUCTURAS DE DATOS 2006 Prof. IMPLEMENTACIÓN COLA CIRCULAR (Utilizando Arreglos) La solución que se describe implica reutilizar las componentes del vector que contenían elementos ya eliminados. Esto

Más detalles

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010 Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del

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

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

324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2

324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2 324 MR Versión 1 Prueba Integral 1/3 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Prueba Integral FECHA DE APLICACIÓN:

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

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

Capítulo. Listas, pilas y colas en C++ Contenido. Introducción Capítulo 34 Listas, pilas y colas en C++ Contenido Tipo abstracto de datos lista Operaciones de listas enlazadas, clase lista Inserción en una lista Buscar un elemento y recorrer una lista enlazada Borrado

Más detalles

Fundamentos de Informática

Fundamentos de Informática Tema 8: 8: Estructuras datos. Fundamentos Informática 1º Ingeniería Industrial Escuela Superior Ingenieros Universidad Sevilla Ismael Alcalá Torrego José Ángel Acosta Rodríguez Fernando Dorado Navas Fabio

Más detalles

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos

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

ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS)

ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS) 2012 UNAN LEON Departamento de Computación Ing. En Sistemas de Información Docente: Ing. Karina Esquivel A. Asignatura: Algoritmo y Estructura de Datos. ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS) TEMA 2:

Más detalles

Estructuras de Datos Dinámicas Contenido del Tema

Estructuras de Datos Dinámicas Contenido del Tema T E M A 2 Estructuras de Datos Dinámicas Contenido del Tema 2.1. Introducción a las estructuras de datos dinámicas. 2.2. Tipo Puntero 2.3. Aplicación: Listas enlazadas. Introducción a las Estructuras de

Más detalles

TEMA 8: Gestión dinámica de memoria

TEMA 8: Gestión dinámica de memoria TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras

Más detalles

El método main de la clase PruebaArbol, empieza creando una instancia de un objeto Árbol vacío y asigna su referencia a la variable árbol

El método main de la clase PruebaArbol, empieza creando una instancia de un objeto Árbol vacío y asigna su referencia a la variable árbol Árboles Las listas enlazadas, pilas y colas son estructuras de datos lineales (es decir, secuencias). Un árbol es una estructura de datos bidimensional no lineal, con propiedades especiales. Los nodos

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

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,

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

LECCION N 08 ARBOLES. Un árbol es un grafo A que tiene un único nodo llamado raíz que:

LECCION N 08 ARBOLES. Un árbol es un grafo A que tiene un único nodo llamado raíz que: LECCION N 08 ARBOLES Los árboles son estructuras de datos útiles en muchas aplicaciones. Hay varias formas de árboles y cada una de ellas es práctica en situaciones especiales, en este capítulo vamos a

Más detalles

Listas. Programación en C LISTAS. Prof. Álvaro Sánchez Miralles. Programación en C. Listas. Objetivos

Listas. Programación en C LISTAS. Prof. Álvaro Sánchez Miralles. Programación en C. Listas. Objetivos LISTAS UPCO ICAI Departamento de Electrónica y Automática 1 Objetivos Aprender a manejar una lista Manejar a través de listas, vectores de datos cuyo tamaño cambia a lo largo del programa y no se conoce

Más detalles

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica. Algoritmos Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEN - UBA Programación imperativa - clase 10 Memoria dinámica listas enlazadas Clases e instancias El paquete

Más detalles

Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales

Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales Estructura de Datos TDA: Listas Prof. Mauricio Solar Prof. Lorna Figueroa Parte del material fue obtenido de Lic. Claudio Barúa Primer Semestre, 2010 Indice Tipos de estructura de datos lineales Listas

Más detalles

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

Más detalles

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

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

PILAS Fundamentos

PILAS Fundamentos Alg. y Estr. Datos-I / Fund. Progr.-II (R. Ferrís, J. Albert) 11 PILAS 11.1 Fundamentos En este tema y en el siguiente se analizarán las estructuras de datos lineales pilas y colas. Las pilas y las colas

Más detalles

TAD CONJUNTOS Y MULTICONJUNTOS

TAD CONJUNTOS Y MULTICONJUNTOS TAD CONJUNTOS Y MULTICONJUNTOS INTRODUCCIÓN Qué es un conjunto? Un conjunto en matemática es una colección de objetos. Los objetos no mantienen ninguna relación aparente entre ellos y tampoco están obligados

Más detalles

ÁRBOLES PARCIALMENTE ORDENADOS

ÁRBOLES PARCIALMENTE ORDENADOS ÁRBOLES PARCIALMENTE ORDENADOS INTRODUCCIÓN - Un árbol A se dice parcialmente ordenado (APO) si cumple la condición de que la etiqueta de cada nodo es menor (de igual forma mayor) o igual que las etiquetas

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

UNIDAD 9. DATOS COMPLEJOS PILAS

UNIDAD 9. DATOS COMPLEJOS PILAS UNI 9. TOS OMPLEJOS PILS Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos sólo por uno de los extremos. omo consecuencia, los elementos de una pila serán eliminados

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

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: FECHA DIA MES AÑO INGENIERÍA EN COMPUTACIÓN ASIGNATURA 1. Objetivo Apellido paterno ESTRUCTURAS

Más detalles

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista:

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista: Tipos Abstractos de Datos: TAD Lista en educación Profesional 1.- Introducción Los tipos abstractos de datos son fundamentales para la informática puesto que de ellos se sirven todos los programas para

Más detalles

Tema 5. Tipos Abstractos de Datos

Tema 5. Tipos Abstractos de Datos . E.U.Politécnica. I.T.Industrial (Electricidad) Tema 5. Tipos Abstractos de Datos. E.U. Politécnica Curso 2004-2005 Departamento Lenguajes y Ciencias de la Computación. Universidad de Málaga José Luis

Más detalles

Definición: NODO Un nodo es un punto de intersección o unión de varios elementos que confluyen en el mismo lugar.

Definición: NODO Un nodo es un punto de intersección o unión de varios elementos que confluyen en el mismo lugar. Definición: ÁRBOL El árbol es como un tipo de grafo cíclico, conexo y no dirigido. Las estructuras tipo árbol se usan principalmente para representar datos con una relación jerárquica entre sus elementos.

Más detalles

Análisis amortizado El plan:

Análisis amortizado El plan: Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras

Más detalles

Estructuras de Datos y Algoritmos

Estructuras de Datos y Algoritmos Estructuras de Datos y Algoritmos Tema 4.3. Tipos de datos lineales. Listas Prof. Dr. P. Javier Herrera Contenido Listas: Conceptos generales Operaciones básicas Especificación algebraica Implementación

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

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

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

INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS

INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS INGENIERIA DE SISTEMAS 1 ESTRUCTURAS DE DATOS (Listas simples) 1. INTRODUCCIÓN INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Las computadoras fueron diseñadas o ideadas como una herramienta mediante la cual

Más detalles

CI2126 PRÁCTICA 9: TAD COLA. 1) Implemente las operaciones C_Insert y C_Remove del TAD COLA usando a. un arreglo. La estructura sería:

CI2126 PRÁCTICA 9: TAD COLA. 1) Implemente las operaciones C_Insert y C_Remove del TAD COLA usando a. un arreglo. La estructura sería: CI2126 PRÁCTICA 9: TAD COLA. 1) Implemente las operaciones C_Insert y C_Remove del TAD COLA usando a. un arreglo La estructura sería: typedef struct s_cola ELEM elementos[max]; int primero,ultimo; STRUCTCOLA,*COLA;

Más detalles

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)

Más detalles

Estructuras de datos: Pilas, Colas, Listas

Estructuras de datos: Pilas, Colas, Listas Estructuras de datos: Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Índice Pilas 1 Pilas 2 3 Referencias bibliográficas Pilas M. A. Weiss., pilas

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 8- Implementación de Pila, Cola y. Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés. Representación Eficaz de una EDA

Tema 8- Implementación de Pila, Cola y. Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés. Representación Eficaz de una EDA Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés Índice general: 1. Representación Eficaz de una EDA Lineal 2. Implementación

Más detalles

Tema 2. Memoria Dinámica

Tema 2. Memoria Dinámica Tema 2. Contenido Gestión de Introducción. Datos estáticos y dinámicos Asignación dinámica de memoria Tipo Puntero Declaración de variables de tipo puntero Operaciones con punteros Gestión dinámica de

Más detalles

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 9. Árboles 9.1 Árboles generales 9.2 Árboles binarios 9.3 Árboles de búsqueda 9.1 Árboles generales Un árbol es

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 edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción

Más detalles

ESTRUCTURAS DE DATOS OTOÑO 2014 DR. MARIO ROSSAINZ LOPEZ

ESTRUCTURAS DE DATOS OTOÑO 2014 DR. MARIO ROSSAINZ LOPEZ UNIDAD 3: Estructuras de Datos Dinámicas Se sabe que la memoria es un elemento indispensable para llevar a cabo operaciones sobre objetos del mundo real. En la memoria es posible describir los objetos

Más detalles

UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL MÉTODOS DIDÁCTICOS EVALUACIÓN

UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL MÉTODOS DIDÁCTICOS EVALUACIÓN UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS MATERIA: ESTRUCTURAS DE DATOS HRS. T/P: 2/3 CARRERA: LIC. EN TECNOLOGÌAS DE INFORMACIÓN CRÉDITOS:

Más detalles

Estructura de Datos: Archivos

Estructura de Datos: Archivos Estructura de Datos: Archivos Registros (record) Un registro es una estructura que consiste de un número fijo de componentes llamados campos. Los campos pueden ser de diferentes tipos y deben tener un

Más detalles

Estructuras de datos. Estructuras de datos

Estructuras de datos. Estructuras de datos Un arbol es un conjunto de nodos que cumplen con las relaciones padre, hijo y hermano. Llamamos hijos de un nodo a todos los nodos que podemos llegar directamente por medio de un apuntador hacia ellos

Más detalles

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación

Más detalles

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores de lenguaje Tema 6 La tabla de símbolos Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de

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

<tipo> Tipo de dato de los elementos del vector

<tipo> Tipo de dato de los elementos del vector Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.

Más detalles

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS PROGRAMA DEL CURSO INTRODUCCION A LA PROGRAMACION Y COMPUTADORAS 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias

Más detalles

ÁRBOLES GENERALES Y Y ESTRUCTURAS DE ÍNDICES DEFINICIONES Y REPRESENTACIONES DEFINICIONES Y REPRESENTACIONES. NOMENCLATURA SOBRE ÁRBOLES. DECLARACIÓN Y REPRESENTACIÓN.. CONSTRUCCIÓN.. ÁRBOLES 2-3-4. ÁRBOLES

Más detalles

Programación de sistemas

Programación de sistemas Programación de sistemas Pilas y Colas Julio Villena Román MATERIALES BASADOS EN EL TRABAJO DE DIFERENTES AUTORES: Carlos Delgado Kloos, Jesús Arias Fisteus, Carlos Alario Hoyos 1

Más detalles

11. PILAS Introducción Fundamentos

11. PILAS Introducción Fundamentos 11. PILAS 11.0 INTRODUCCIÓN... 25 11.1 FUNDAMENTOS... 25 11.2. REPRESENTACIÓN DE LAS PILAS EN C++... 26 Implementación mediante estructuras estáticas... 31 Implementación mediante cursores... 35 Implementación

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

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

Programación 1. Diseño modular de nuevos tipos de datos en un programa. Diseño modular de un tipo de dato con estructura de conjunto

Programación 1. Diseño modular de nuevos tipos de datos en un programa. Diseño modular de un tipo de dato con estructura de conjunto Programación 1 Diseño modular de nuevos tipos de datos en un programa Diseño modular de un tipo de dato con estructura de conjunto 1 1. Objetivo de la lección Presentar una metodología para el diseño modular

Más detalles

Los elementos de una lista unidireccional o secuencia, llamados nodos, constan de dos partes:

Los elementos de una lista unidireccional o secuencia, llamados nodos, constan de dos partes: A. Dasso, A. Funes Introducción a la Programación tas de Clase Listas 9 ESTRUCTURAS DE DATOS: LISTAS UNI Y BIDIRECCIONALES 9.1 LISTAS UNIDIRECCIONALES COMPOSICIÓN DE LOS ELEMENTOS Los s de una lista unidireccional

Más detalles

TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013

TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 TADs en C Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 1. Objetivos Definición de TADs en C Ocultación de la implementación del TAD Manejo básico de memoria dinámica 2. Usando

Más detalles

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo

Más detalles

Es común al crear estructuras de datos y luego trabajar sobre las mismas, tener la necesidad de realizar búsquedas en forma más frecuente que la

Es común al crear estructuras de datos y luego trabajar sobre las mismas, tener la necesidad de realizar búsquedas en forma más frecuente que la Es común al crear estructuras de datos y luego trabajar sobre las mismas, tener la necesidad de realizar búsquedas en forma más frecuente que la necesidad de realizar inserciones. Por ejemplo si tenemos

Más detalles

14. ÁRBOLES. 14.1 Fundamentos y terminología básica

14. ÁRBOLES. 14.1 Fundamentos y terminología básica Ricardo Ferrís / Jesús Albert Algoritmos y estructuras de datos I 14. ÁRBOLES 14.1 FUNDAMENTOS Y TERMINOLOGÍA BÁSICA... 79 14.2. ÁRBOLES BINARIOS... 81 14.3. FUNDAMENTOS... 82 14.3. OPERACIONES CON ÁRBOLES

Más detalles

AREA A LA QUE PERTENECE: 103 Matemática Básica 2 34 créditos POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015

AREA A LA QUE PERTENECE: 103 Matemática Básica 2 34 créditos POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Introducción a la Programación Y Computación 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias y Sistemas AREA

Más detalles

Programación estructurada (Introducción a lenguaje C)

Programación estructurada (Introducción a lenguaje C) Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:

POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Introducción a la Programación Y Computación 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias y Sistemas AREA

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

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Tema 7.- Fundamentos de la Programación Orientada a Objetos Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Arboles Binarios Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et

Más detalles

ESTRUCTURAS DE DATOS

ESTRUCTURAS DE DATOS ESTRUCTURAS DE DATOS Gestión Dinámica de Memoria Funciones New Malloc Realloc delete - free Ing Yamil Armando Cerquera Rojas Especialista en Sistemas Universidad Nacional Docente Universidad Surcolombiana

Más detalles

Estructuras de Datos y Algoritmos TDA LISTA

Estructuras de Datos y Algoritmos TDA LISTA Estructuras de Datos y Algoritmos TDA LISTA Metáfora del TDA (repaso) Conjunto de operaciones forman una pared forman una interfase entre los programas y la estructura de datos Diseño de una Clase (repaso)

Más detalles

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Diseño de algoritmos recursivos 1. Dado un vector de enteros de longitud N,

Más detalles

Solución - práctico 10

Solución - práctico 10 Solución - práctico 10 Complejidad Ejercicio 1 a) Una implementación del algoritmo es la siguiente: /* Procedimiento que se encarga de realizar la unión de los dos conjuntos * ordenados der1 e izq1 son

Más detalles

Instituto Politécnico Nacional

Instituto Politécnico Nacional Instituto Politécnico Nacional Secretaria Académica Dirección de Estudios Profesionales Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Culhuacan Ingeniería en Comunicaciones y Electrónica Academia

Más detalles

Iteradores y contenedores en C++

Iteradores y contenedores en C++ Iteradores y es en C++ Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Se desea saber qué alumnos el curso Escribir función que identifique si un alumno tiene nota menor a 3.95 bool notarep(const

Más detalles

PRÁCTICA Nº 5: 2 sesiones (del 11 de Abril al 17 de Abril de 2003) Listas con punto de interés para la composición de melodías musicales

PRÁCTICA Nº 5: 2 sesiones (del 11 de Abril al 17 de Abril de 2003) Listas con punto de interés para la composición de melodías musicales PRÁCTICA Nº 5: 2 sesiones (del 11 de Abril al 17 de Abril de 2003) Listas con punto de interés para la composición de melodías musicales 0. OBJETIVOS El objetivo de esta práctica es la implementación del

Más detalles

En el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro:

En el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro: LABORATORIO #6 (Parte I y II) REGISTROS Y ARCHIVOS Parte I: Registros Un registro es una estructura de datos formado por un conjunto de elementos llamados campos, no necesariamente del mismo tipo y que

Más detalles

Análisis y Diseño de Algoritmos Tablas de Hash

Análisis y Diseño de Algoritmos Tablas de Hash Análisis y Diseño de Algoritmos Tablas de Hash Guillermo Morales-Luna Arturo Díaz Pérez CONTENIDO 1. Dispersión 2. Funciones de dispersión (a) Método de división (b) Método de multiplicación 3. Direccionamiento

Más detalles

Al concluir está práctica el estudiante será capaz de elaborar programas utilizando apuntadores y arreglos.

Al concluir está práctica el estudiante será capaz de elaborar programas utilizando apuntadores y arreglos. Apuntadores Práctica 13 Alumno: Grupo: Fecha: Instituto Politécnico Nacional Secretaria Académica Dirección de Educación Superior ESIME Culhuacan Ingeniería en Computación Fundamentos de Programación Objetivo

Más detalles

Algoritmos y estructuras de datos

Algoritmos y estructuras de datos Algoritmos y estructuras de datos Dr. Eduardo A. Rodríguez Tello Laboratorio de Tecnologías de Información Cinvestav Tamaulipas ertello@tamps.cinvestav.mx Cursos de inducción a la MCC Cinvestav Tamaulipas

Más detalles

Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la información de este documento fue tomada textualmente de varios

Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la información de este documento fue tomada textualmente de varios CLASE GRAFOS Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la información de este documento fue tomada textualmente de varios libros por lo que está prohibida su impresión

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

Estructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1

Estructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1 Estructura de Datos Arreglos Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1 Introducción Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización

Más detalles

Definición y Conversión de datos. Agustín J. González ELO-329

Definición y Conversión de datos. Agustín J. González ELO-329 Definición y Conversión de datos Agustín J. González ELO-329 1 Calificador Const El calificador const previene que un objeto sea modificado con posterioridad a su definición. El objeto calificado como

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Uruguay 29 de marzo de 2016 Estructuras de control IV Iteración Sentencia for: for (inicio; condicion; paso) cuerpo for (int i = 0; i < 10;

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

1. Leer el primer número y almacenarlo en la raíz del árbol. 2. Repetir hasta encontrar un duplicado o el árbol esté vacío.

1. Leer el primer número y almacenarlo en la raíz del árbol. 2. Repetir hasta encontrar un duplicado o el árbol esté vacío. Capítulo 6 Árboles 6.1 Introducción Esta no es una estructura lineal, deben conocerlos de matemáticas finitas. Ejemplos: la tabla de contenido de un libro, los que se hacen en los torneos, los arboles

Más detalles