Upload
daver-rosales
View
21
Download
0
Embed Size (px)
DESCRIPTION
Estructura de Datos
Citation preview
Total de Horas: 90hrsMaestra: Ana Mara de LourdesCorreo: [email protected]
Objetivo de la asignatura: ! Que el alumno desarrolle aplicaciones que organicen informacin con base a ! estructura de datos abstractos empleando paradigma orientado a objetos que ! agiliza el acceso a datos almacenados.
Estructura de Datos:
Cualquier representacion de datos y sus operaciones asociadas:
! En sentido general, cualquier representacion de datos, incluso un numero entero o un numero de coma flotante almacenado en la computadora, es una sencilla estructura de datos.
En un sentido mas especifico, una estructura de datos es una organizacion o estructuracion de una coleccion de elementos dato.
Objetivo de facilitar la manipulacion de estos datos como un todo y/o individualmente.
Define ademas de la organizacion la interrelacion de datos y un conjunto de operaciones que se pueden realizar.
NOTA: Cuando ya esta en orden entonces sera una estructura de datos pues esta organizada si no sera solamente una representacion.
NOTA 2: Facilita la manipulacin de los datos..
Las operaciones basicas son: Alta, adicionar un nuevo valor a la estructura. Baja, borrar un valor de la estructura Busqueda, encontrar un determinado valor en la estructura para se realizar una
operacion con este valor, en forma SECUENCIAL o BINARIO (Siempre y cuando los datos esten ordenados)
Otras operaciones que se puede realizar son
Ordenamiento, de los elementos pertenecientes a la estructura. Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las
apareadas.
De que sirven?! Usualmente, las estructuras nos sirven para representar abstractamente una parte de un problema, generando asi, un modelo acorde a las necesidades de la situacion y no un modelo con detalles que no usaremos. (Luis Lastra, Instituto Profesional Virginio Gmez)
Estructura de Datos I
Estructuras Uilizadas en Programacin
Arrays! Vectores! Matrices
Listas Enlazadas! Listas Simples! Listas Dobles! Listas Circulares
Pilas
Colas
Arboles! Arboles Binarios
Tarea
Que son y cuales son los tipos de Datos Abstractos con Bibliografia (URL pagina donde se encontro, Nombre de la Pagina, Nombre del Autor)
Que entendimos y que no entendimos
NOTA: Ver anexo 1
.
Tipos de Datos Abstractos--
TAD --> es un procedimiento que nos ayuda a conocer una solucion para la resolucion de un problema
Un objeto es un dato abstracto--
Que debe de contener los trabajos
Portada (Arial 16, Todo en Mayusculas) Logo de la UTA Nombre de la Universidad Nombre de la Carrera Nombre de la Materia Titulo de la Presentacion
Estructura de Datos I
Introduccin (Manera general de lo que trata, centrado, Arial 14 y el titulo Arial 16) Desarrollo (Titulos Arial 16, Alineacion Derecha, Texto Arial 14 Justificado) Conclusion (Titulo Arial 16, Arial 14 Texto Centrado) Integrantes (Apellido por orden Alfabetico Bibliografia
TAREA Miercoles (04/09/13)Investigar RecursividadEjemplos de colas, pilas , arboles, listas, grafos
TAREA..
Recursividad: Tcnica de programacin la cual nos permite ejecutar n veces un bloque de instrucciones donde se llama a si misma y los valores se reservan en una pila de datos para cuando se vuelve a llamar se quitan los antiguos y quedan los nuevos.
Ejemplo:
public class Recursividad {
int factorial(int fact) { if (fact>0) { int valor=fact * factorial(fact-1); return valor; } else return 1; } public static void main(String[] ar) { Recursividad re=new Recursividad(); int f=re.factorial(4); System.out.println("El factorial de 4 es "+f); }}
Estructura de Datos I
PILA:C:
1. #include 2. #include 3. #include 4. #include 5. 6. struct agenda7. {8. char nombre[50];9. char telefono[25];10. char mail[50];11. };12. 13. struct nodo14. {15. struct agenda dato;16. struct nodo *proximo;17. };18. 19. struct nodo *nuevonodo();20. int colavacia(struct nodo *);21. struct nodo *creacola(struct nodo *, struct agenda);22. void mostrar(struct nodo *);23. 24. void main()25. {26. struct nodo *pri=NULL, *ult=NULL;27. struct agenda x;28. printf("Ingrese nombre: ");29. gets(x.nombre);30. while(strcmpi(x.nombre,"fin"))31. {32. printf("Ingrese telefono: ");33. gets(x.telefono);
Estructura de Datos I
34. printf("Ingrese mail: ");35. gets(x.mail);36. ult=creacola(ult,x);37. if(pri==NULL) pri=ult; // Si es la 1 pasada pongo en pri el
valor del primer nodo38. printf("Ingrese nombre: ");39. gets(x.nombre);40. }41. if(colavacia(pri)==1) { printf("No se ingresaron registros");
getch(); }42. else mostrar(pri);43. }44. 45. struct nodo *nuevonodo()46. {47. struct nodo *p;48. p=(struct nodo *)malloc(sizeof(struct nodo));49. if(p==NULL)50. {51. printf("Memoria RAM Llena");52. getch();53. exit(0);54. }55. return p;56. }57. 58. struct nodo *creacola(struct nodo *ult, struct agenda x)59. {60. struct nodo *p;61. p=nuevonodo();62. (*p).dato=x;63. (*p).proximo=NULL;64. if(ult!=NULL) (*ult).proximo=p; // Si hay nodo anterior en prox
pongo la direccion del nodo actual65. return p;66. }
Estructura de Datos I
67. 68. int colavacia(struct nodo *pri)69. {70. if(pri==NULL) return 1;71. else return 0;72. }73. 74. void mostrar(struct nodo *pri)75. {76. struct nodo *aux;77. while(pri!=NULL)78. {79. printf("Nombre: %s - Telefono: %s - Mail: %s \n",pri-
>dato.nombre,pri->dato.telefono,pri->dato.mail);80. aux=pri;81. pri=(*pri).proximo;82. free(aux);83. }84. getch();85.}
Estructura de Datos I
LISTAS:
Ejemplo: en cdigopublic class nodo {private Object elemento;private nodo siguiente; public nodo() { this(null,null); } public nodo(Object e, nodo n){ elemento=e; siguiente=n; } Object getElemento(){ return elemento; } nodo getSiguiente(){return siguiente; } void setElemento(Object nuevoelemento){ elemento=nuevoelemento; }void setSiguiente(nodo nuevosiguiente){ siguiente=nuevosiguiente; } }Un programa que acceda a la lista.public class agrega {public static void main(String [] args){ nodo p,q; p = new nodo("uno",null); q = new nodo(); q.setElemento("dos"); q.setSiguiente(p); p = q; q = new nodo(); q.setElemento("tres"); q.setSiguiente(p); p = q; while (q!=null){ System.out.println(q.getElemento()); System.out.println(q.toString()); q=q.getSiguiente(); } } }
Estructura de Datos I
Arboles:
Existen 4 formas de representar un rbol-Grafo-Diagrama de venn-Anidacion de parntesis-Notacin identada
Grafos:
Ventajas y Desventajas de las estructuras de datos
ArreglosArreglosVentajas Desventajas
Insercion rpida, acceso rpido si se conoce el indice.
Bsqueda y borrado lento
Bsqueda rpida(En arreglos ordenados)
Insercin lenta(Arreglo ordenado)
PilaPilaVentajas Desventajas
Proporciona acceso ultimo en entrar, primero en salir
Acceso lento a otros elementos
ColaColaVentajas Desventajas
Proporciona primero en entrar primero en salir
Acceso lento a otros elementos
ListaListaVentajas Desventajas
Insercin y borrado rpido Bsqueda lenta
Estructura de Datos I
rbolrbolVentajas Desventajas
Bsqueda, insercin y borrado rpido (A r b o l b i n a r i o : s i e l a r b o l permanece permanentemente balanceado.rbol rojinegro: rbol siempre balanceado.rbol 2 -3 -4: rbo l s iempre balanceado)
Complejos
MontculoMontculoVentajas Desventajas
Insercin, borrado y acceso al elemento ms grande rpido.
Acceso lento a otros elementos.
GrafoGrafoVentajas Desventajas
Modela situaciones del mundo real Algunos algoritmos son lentos y complejos
Que es lo que entendi y no entendi
TAREA: Saber identificar cuando es cada uno de los ejemplos.
RECURSIVIDAD:
Metodo donde se permite repetirse a si mismo----Es utilizado para problemas que disponen hablarse a si mismo, es una alternativa utilizada pero no eficiente. Permite especificar soluciones naturales,
Estructura de Datos I
sencillas, en caso de que no se puedan resolver, por lo tanto se hace como herramienta muy poderosa e importante para resolver problemas y en la programacin. Es una propiedad que posee un mtodo para poderse hablar as msmo, este mtodo tambin tiene dos tcnicas de Divide y venceras Vuelta atras
Recursividad (Requeriere estructura de seleccin) VS.
Iteracin (Requiere estructura de repeticin)
09 - Septiembre - 2013 Clase Lunes
1.-Programar funcion del factorial tanto de manera normal como de manera recursiva. (Hecho en clase)
2.-Calcule la potencia de x elevado a la N en forma recursiva que x sea real y n entero positivo
3.-Programa que reporte N terminos de la serie fibonacci
4.-Programa que calcule el Maximo Comun Divisor de dos numeros
5.- Numero que convierta de base 10 a base B que sea entre 2 y 9
6.-Dado un numero natural N obtener la suma de los digitos
7.-Escribir un metodo recursivo de int vocales para calcular el numero de vocales de una cadena
Estructura de Datos I
Estructura de Datos I