Está en la página 1de 11

Total de Horas: 90hrs

Maestra: Ana Mara de Lourdes


Correo: anacorona88@gmail.com
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 otante almacenado en la computadora, es una sencilla estructura de
datos.
En un sentido mas especico, 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.
Dene 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 Bibliograa (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 Justicado)

Conclusion (Titulo Arial 16, Arial 14 Texto Centrado)

Integrantes (Apellido por orden Alfabetico

Bibliograa
TAREA Miercoles (04/09/13)
Investigar Recursividad
Ejemplos 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 <stdio.h>
2. #include <conio.h>
3. #include <stdlib.h>
4. #include <string.h>
5.
6. struct agenda
7. {
8. char nombre[50];
9. char telefono[25];
10. char mail[50];
11. };
12.
13. struct nodo
14. {
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 nodo
38. 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 actual
65. 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 cdigo
public 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
Arreglos Arreglos
Ventajas Desventajas
Insercion rpida, acceso rpido si
se conoce el indice.
Bsqueda y borrado lento
Bsqueda rpida
(En arreglos ordenados)
Insercin lenta
(Arreglo ordenado)
Pila Pila
Ventajas Desventajas
Proporciona acceso ultimo en
entrar, primero en salir
Acceso lento a otros
elementos
Cola Cola
Ventajas Desventajas
Proporciona primero en entrar
primero en salir
Acceso lento a otros
elementos
Lista Lista
Ventajas Desventajas
Insercin y borrado rpido Bsqueda lenta
Estructura de Datos I
rbol rbol
Ventajas Desventajas
Bsqueda, insercin y borrado
rpido (
Ar bol bi nar i o: s i el ar bol
permanece permanent ement e
balanceado.
rbol rojinegro: rbol siempre
balanceado.
r bol 2- 3- 4: r bol si empr e
balanceado)
Complejos
Montculo Montculo
Ventajas Desventajas
Insercin, borrado y acceso al
elemento ms grande rpido.
Acceso lento a otros
elementos.
Grafo Grafo
Ventajas 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

También podría gustarte