Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
PIAP134 Prof. Oriana Gómez AmoresePIAP134 Prof. Oriana Gómez AmoreseEstructuras de Datos yEstructuras de Datos yAlgoritmos...
• Explicar el rol de las estructuras de datos y algoritmoscomo bloques de construcción en programas decomputadora• Definir...
Dos elementos esenciales en la resolución deproblemas:• Estructura de datos:Mecanismo de almacenamiento usado paraalmacena...
• Un tipo de dato es:- Un conjunto de valores que una variable de esetipo puede tomar- Las operaciones permitidas en ella....
• El término estructura de dato se usanormalmente para referirse a una colección dedatos que están organizados de alguna f...
• Las estructuras de datos y los algoritmosconstituyen los principales bloques deconstrucción de los programas.• La selecc...
• Tipo de Dato Abstracto (TDA) se refiere aentidades de almacenamiento de datos y lasoperaciones definidas en esas entidad...
• Una lista se puede definir como una serie decero o más elementos, donde cada elementopertenece a un tipo dado.elem1, ele...
• Una lista puede ser vista como un TDA aldefinir un conjunto de operaciones sobre ésta:− nuevo(lista)− insertar(lista, el...
• Las dos operaciones básicas de la lista quegeneran todas las nuevas listas posibles son:- nuevo (new)- insertar (insert)...
esvacio(nuevo) = verdaderoLa nueva lista retornada por la operación nuevo esuna lista vacía, ya que ningún elemento se haa...
Insertar en una Lista
Eliminar en una Lista
 Usando un arreglo se implementan lasoperaciones:• Crear una nueva lista• Insertar un elemento en una lista• Eliminar un ...
#define LISTMAX 100 /* Limite máximo */#define STRINGSIZE 30/* Definición del Type para una lista */typedef struct {int co...
/* Crear una lista. */void newList(List_Array *list_ptr){int k;list_ptr->count = 0;/* No hay elementos*/for(k = 0; k < LIS...
/* Para insertar un elemento en la lista */int insertElement(List_Array *list_ptr, char *element) {if(list_ptr->count == L...
/* Eliminar un elemento en la lista dada suposición en la lista*/int deleteElement(List_Array *list_ptr, int pos) {int k;/...
else {/* Mueve todos los elementos hacia arriba */for (k = pos; k < list_ptr->count - 1;k++)strcpy(list_ptr->list[k],list_...
/* Encontrar un elemento en la lista */int find(List_Array *list_ptr, char *element){int k = 0;while (k <= list_ptr->count...
/* Encuentra el elemento sucesor dada unaposición en la lista */char * succ(List_Array *list_ptr, int pos){/* Revisar erro...
elseif (pos == list_ptr->count-1) {printf("No existe sucesor para el último elemento en la lista!n");return(NULL);}elseret...
/* Encuentra el elemento predecesor dadauna posición en la lista */char * pred(List_Array *list_ptr, int pos){/* Revisar e...
elseif (pos == 0) {printf("No existe predecesor para el primer elemento en la lista!n");return(NULL);}elsereturn(list_ptr-...
/* Determinar si la lista está vacía o no */int isEmpty(List_Array *list_ptr) {if (list_ptr->count == 0)return(1); /* list...
• Representación y operaciones aritméticas en enterossúper largos• Representación y operaciones sobre polinomios• Diversid...
• Se explicó el rol de las estructuras de datos y losalgoritmos como bloques de construcción de losprogramas de computador...
Estructuras de datos y algoritmos
Estructuras de datos y algoritmos
Prochain SlideShare
Chargement dans…5
×

Estructuras de datos y algoritmos

217 vues

Publié le

  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Estructuras de datos y algoritmos

  1. 1. PIAP134 Prof. Oriana Gómez AmoresePIAP134 Prof. Oriana Gómez AmoreseEstructuras de Datos yEstructuras de Datos yAlgoritmosAlgoritmos
  2. 2. • Explicar el rol de las estructuras de datos y algoritmoscomo bloques de construcción en programas decomputadora• Definir estructuras de datos• Discutir las diferencias entre un tipo de dato y unaestructura de dato• Explicar el rol de las estructuras de datos en laresolución de problemas• Describir el Tipo de Dato Abstracto lista• Discutir la estructura de datos lista• Explicar cómo implementar una lista como un arregloObjetivos del Aprendizaje
  3. 3. Dos elementos esenciales en la resolución deproblemas:• Estructura de datos:Mecanismo de almacenamiento usado paraalmacenar datos.• Algoritmos:Método usado para resolver el problemaLos algoritmos permiten que algunas de lasoperaciones básicas e importantes serealicen sobre las estructuras de datos.La Necesidad de Algoritmosy Estructuras de Datos
  4. 4. • Un tipo de dato es:- Un conjunto de valores que una variable de esetipo puede tomar- Las operaciones permitidas en ella.• Los diferentes tipos de datos que un lenguaje deprogramación soporta son:− integer− float− char− booleanTipos de Datos
  5. 5. • El término estructura de dato se usanormalmente para referirse a una colección dedatos que están organizados de alguna forma uotra.• Una estructura de datos es una colección deentidades pertenecientes a tipos de datosdiferentes que resultan de la organización depiezas de datos interrelacionadas.• Las estructuras de datos también tienen unconjunto de valores y operaciones definidas enestos valores.• Las estructuras de datos son declaradas ydefinidas por los programadores.Estructuras de Datos
  6. 6. • Las estructuras de datos y los algoritmosconstituyen los principales bloques deconstrucción de los programas.• La selección de las estructuras de datos quepueden usarse para resolver un problema: Es una de las principales fuentes de variabilidad en eldiseño de algoritmos. Determina la facilidad con la cual un algoritmo puedaser escrito. Puede aumentar o disminuir el requerimiento deespacio de almacenamiento y otros recursos en unacomputadora.Rol de las Estructuras de Datos para Resolver Problemas
  7. 7. • Tipo de Dato Abstracto (TDA) se refiere aentidades de almacenamiento de datos y lasoperaciones definidas en esas entidades.• TDA es simplemente una colección deoperaciones.• La lista vista como un TDA:− Insertar un elemento− Borrar un elemento− Encontrar un elemento− Mostrar elementosTipo de Dato Abstracto - TDA
  8. 8. • Una lista se puede definir como una serie decero o más elementos, donde cada elementopertenece a un tipo dado.elem1, elem2, elem3… elemnDonde:- n:Indica la longitud de la lista- Elem1:Primer elemento de la lista- elemn: Último elemento de la lista• Una lista se dice que está vacía cuando elnúmero de elementos, n, es cero.• Las listas son estructuras de datos flexiblesque se puede expandir o contraerEstructura de Datos Lista
  9. 9. • Una lista puede ser vista como un TDA aldefinir un conjunto de operaciones sobre ésta:− nuevo(lista)− insertar(lista, elem)− borrar(lista, pos)− encontrar(lista, elem)− obtener(lista, pos)− esvacio(lista)Lista como un TDA
  10. 10. • Las dos operaciones básicas de la lista quegeneran todas las nuevas listas posibles son:- nuevo (new)- insertar (insert)• Se denominan operaciones primitivas• Una operación primitiva es aquella que puedeusarse para definir todas las otras operaciones deuna estructura de datos.Lista como un TDA...
  11. 11. esvacio(nuevo) = verdaderoLa nueva lista retornada por la operación nuevo esuna lista vacía, ya que ningún elemento se haañadido hasta ahora.esvacio(insertar(lista,elem))=falsolista pasada a esvacio después de la adiciónde elem no es una lista vacíaLas reglas que definen a esvacio usandooperaciones primitivas se denominan axiomas.Definición de esvacio Usando nuevo e insertar
  12. 12. Insertar en una Lista
  13. 13. Eliminar en una Lista
  14. 14.  Usando un arreglo se implementan lasoperaciones:• Crear una nueva lista• Insertar un elemento en una lista• Eliminar un elemento de una lista• Buscar un elemento en una lista• Encontrar el sucesor y predecesor de unelemento en una lista• Determinar si una lista está vacíaOperaciones sobre una Lista
  15. 15. #define LISTMAX 100 /* Limite máximo */#define STRINGSIZE 30/* Definición del Type para una lista */typedef struct {int count; /* Nro de elementos en list */char list[LISTMAX][STRINGSIZE];} List_Array;Implementar una Lista como un Arreglo
  16. 16. /* Crear una lista. */void newList(List_Array *list_ptr){int k;list_ptr->count = 0;/* No hay elementos*/for(k = 0; k < LISTMAX; k++)/* Inicializar con un carácter null */strcpy(list_ptr->list[k],"0");}Crear una Nueva Lista
  17. 17. /* Para insertar un elemento en la lista */int insertElement(List_Array *list_ptr, char *element) {if(list_ptr->count == LISTMAX)return (-1); /*Tamaño máximo alcanzado*/else {strcpy(list_ptr->list[list_ptr->count], element);list_ptr->count++; /*Un elemento más*/return(1); /* Retorna éxito */}}Insertar un Elemento en una Lista
  18. 18. /* Eliminar un elemento en la lista dada suposición en la lista*/int deleteElement(List_Array *list_ptr, int pos) {int k;/* Revisar si pos existe y errores */if (pos < 0 || pos > list_ptr->count-1)return(-1); /* error */Eliminar un Elemento en una Lista
  19. 19. else {/* Mueve todos los elementos hacia arriba */for (k = pos; k < list_ptr->count - 1;k++)strcpy(list_ptr->list[k],list_ptr-list[k+1]);list_ptr->count--;return(1); /* Eliminación con éxito */}}Eliminar un Elemento en una Lista...1
  20. 20. /* Encontrar un elemento en la lista */int find(List_Array *list_ptr, char *element){int k = 0;while (k <= list_ptr->count - 1)/* Revisar por el nombre en k */if (!strcmp(list_ptr->list[k], element))return(k+1);elsek++;return(-1); /* Elemento no encontrado */}Buscar un Elemento en una Lista
  21. 21. /* Encuentra el elemento sucesor dada unaposición en la lista */char * succ(List_Array *list_ptr, int pos){/* Revisar errores */if (pos < 0 || pos > list_ptr->count-1) {printf("nSuccessor - Input error: Notal posición en la listan"); /* Error */return(NULL);}Sucesor de un Elemento en una Lista
  22. 22. elseif (pos == list_ptr->count-1) {printf("No existe sucesor para el último elemento en la lista!n");return(NULL);}elsereturn(list_ptr->list[pos + 1]);}Sucesor de un Elemento en una Lista..1
  23. 23. /* Encuentra el elemento predecesor dadauna posición en la lista */char * pred(List_Array *list_ptr, int pos){/* Revisar errores */if (pos < 0 || pos > list_ptr->count-1){printf("nPredecessor - Input error: Noexiste esa posición en la listan");//Errorreturn(NULL);}Predecesor de un Elemento en una Lista
  24. 24. elseif (pos == 0) {printf("No existe predecesor para el primer elemento en la lista!n");return(NULL);}elsereturn(list_ptr->list[pos - 1]);}Predecesor de un Elemento en una Lista...1
  25. 25. /* Determinar si la lista está vacía o no */int isEmpty(List_Array *list_ptr) {if (list_ptr->count == 0)return(1); /* lista está vacía */elsereturn(0); /* lista no está vacía */}Determinar si la Lista Está Vacia
  26. 26. • Representación y operaciones aritméticas en enterossúper largos• Representación y operaciones sobre polinomios• Diversidad de listas, por ejemplo, listas de votantes,lista de elementos de compra, etc.• Planificación de tareas• Simulación de colas usando listas• Bioinformática• Aplicaciones de procesamiento de texto• Implementaciones de conjuntos• Aplicaciones en sistemas operativos para administrarlistas de procesos y administrar la paginación dememoriaAplicaciones Usando Lista
  27. 27. • Se explicó el rol de las estructuras de datos y losalgoritmos como bloques de construcción de losprogramas de computadoras• Se definió el concepto de estructuras de datos• Se discutió acerca de las diferencias entre un tipode dato y una estructura de datos• Se explicó el rol de las estructura de datos en lasolución problemas• Se describió el Tipo de Dato Abstracto Lista• Se discutió acerca de la estructura de datos lista• Se explicó cómo implementar una lista como unarregloResumen

×