Está en la página 1de 28

Estructura de Datos (Java)

Licenciatura en Informtica Objetivo: Aprender las principales estructuras de datos desde un punto de vista abstracto y las operaciones que se pueden realizar sobre ellas, aplicando en forma prctica los conceptos adquiridos mediante resolucin de problemas. I. Tipos de datos. I.1. Tipos de datos. I.1.1. Tipos de datos simples. I.1.1.1. Definicin de bit, byte, carcter y palabra. I.1.1.2. Manipulacin de bits. I.1.1.3. Representacin de datos simples. I.1.2. Tipos de datos Abstractos. I.2. Estructura de datos. I.2.1. Definicin. I.2.2. Clasificacin. I.2.2.1. Lineales y no lineales. I.2.2.2. Dinmicas y estticas.

II.

Estructuras lineales. II.1. Arreglos. II.1.1. Definicin. II.1.2. Unidimensionales. II.1.3. Bidimensionales. II.1.4. Multidimensionales. II.1.5. Resolucin de problemas con arreglos. II.1.6. Clases para la implementacin de arreglos. II.2. Pilas. II.2.1. Definicin. II.2.2. Operaciones. II.2.3. Clases para la implementacin de pilas. II.3. Colas. II.3.1. Definicin. II.3.2. Tipos. II.3.2.1. Colas simples. II.3.2.2. Colas circulares. II.3.2.3. Colas dobles. II.3.3. Operaciones. II.3.4. Clases para la implementacin de colas.

III.

Listas enlazadas. III.1. Listas enlazadas. III.1.1. Simples. III.1.2. Dobles. III.1.3. Circulares. III.1.4. Multilistas. III.1.5. Clases para la implementacin de listas. Estructura no lineales IV.1. rboles. IV.1.1. Definicin. IV.1.2. Representacin en memoria de rboles. IV.1.2.1. rboles generales. IV.1.2.2. rboles binarios. IV.1.3. Recorrido de rboles binarios. IV.1.3.1. Preorden. IV.1.3.2. Inorden. IV.1.3.3. Postorden. IV.1.4. Balanceo de rboles binarios. IV.1.5. Clases para la implementacin de rboles. IV.2. Grafos IV.2.1. Definicin. IV.2.2. Tipos de grafos. IV.2.3. Representacin de grafos en memoria. IV.2.4. Clases para la implementacin de grafos.

IV.

Bibliografa: Estructura de datos, 2. Edicin Cairo Mc Graw Hill, 2001 Estructura de datos en Java Mark Allen Weiss Mark Personal Educacin Estructura de datos, algoritmos y programacin orientada a objetos Heileman Mc Graw Hill, 2001 Fundamentos de algoritmia Brassard y Bratley Prentice Hall Harvey M. Deitel/ Paul J. Deitel Cmo programar en Java, 5. Edicin, 2004 Pearson, Prentice Hall

Luis Joyanes Aguilar / Ignacio Zahonero Martnez Programacin en Java 2 Algoritmos, Estructuras de Datos y Programacin Orientada a Objetos, 2002 Mc Graw Hill

C++ gua de autoenseanza. Schildt Mc Graw Hill, 2001 C# Manual de referencia Schildt Mc Graw Hill, 2003

Fechas de Exmenes Examen


1er 2. 3er 4. Regularizacin Extraordinario I Calificacin Final

Fecha

Unidades

Criterios de evaluacin y acreditacin Exmenes 60% Productos de Aprendizaje 40%

Otras Observaciones: Personificador Hora de entrada Asistencia a clase Derecho a examen Revisin equitativa Regularizacin Extraordinario I

Java

import Importacin de paquetes con clases predefinidas. public class NombreDeLaClase { // Este nombre debe de coincidir con el nombre fsico del archivo fuente y debe tener extensin .java

Declaracin de variables miembro de la clase public static tipo main (String[] args) { // Tambin (String args[]) puede especificarse as. Declaracin de variables locales Sentencias de la funcin main() [return tipo;] } Definicin de mtodos de la clase acceso static tipo NombreDelMtodo1 (Lista de Argumentos) { Declaracin de variables del mtodo 1 Sentencias del mtodo 1 [return tipo;] } acceso static tipo NombreDelMtodo2 (Lista de Argumentos) { Declaracin de variables del mtodo 2 Sentencias del mtodo 2 [return tipo;] } }

En Java existen dos formas de definir comentarios, estos son: Cometarios por Lnea: Se utilizan dos barras verticales // y despus el comentario.

Ejemplo: Comentario por lnea: // Mi primer programa en Java // Elaborado el 20 de Agosto de 2009 // En la materia de programacin

Comentarios por Bloque:

Se utiliza una barra vertical y un asterisco, posteriormente se ponen los comentarios, los cuales pueden utilizar varias lneas y para terminar el comentario se emplea un asterisco y una barra vertical. /* comentario */.

Ejemplo: Cometario por Bloque: /* Mi primer programa en Java Elaborado el 20 de Agosto de 2005 En la materia de programacin */ Tipo de datos en Java

Tipo boolean char byte short int long

Tamao en bits 1 16 8 16 32 64

Rango de valores true o false Nota: El No. de bits puede variar segn la plataforma \u0000 hasta \uFFFF' Conjunto Unicode de ISO -128 a +127 -27 a 27 1 -32,768 a +32,767 -215 a 215 1 -2,147,483,648 a +2,147,483,647 -231 a 231 1 -9,223,372,036,854,775,808 a +9,223,372,036,854,775,807 -263 a 263 1

Tipo

Tamao en bits

Rango de valores Rango negativo: -3.4028234663852886E+38 hasta -1.40129846432481707E-45 Rango positivo: 1.40129846432481707E-45 hasta 3.4028234663852886E+38 Rango negativo: -1.797693134862157E308 hasta -4.94065645841246544E324 Rango positivo: 4.94065645841246544E324 hasta 1.797693134862157E308

float

32

double

64

Tokens elementos lxico de los programas Existen 5 clase de tokens: identificadores, palabras reservadas, literales, operadores y otros. Identificadores Los identificadores pueden representar variables, constantes, mtodos, nombres de archivos, etc. Diagrama de contexto de los identificadores:

Regla para formar un identificador: 1. 2. 3. 4. 5. 6. Debe comenzar por una letra Despus de la 1er. Letra puede contener letras, dgitos o guin de piso No estn permitidos los espacios en blanco No deben formar palabras reservadas Java es sensibles a las maysculas y minsculas En Java la longitud de los identificadores no tiene lmite. 3

Variables
tipo identificador

,
tipo identificador

Expresin

,
Constantes En Java puede distinguirse dos tipos de constantes: o o Constantes Literales Constantes Declaradas

Constantes Declaradas Por medio del cualificador final permite dar nombres simblicos a constantes.

final tipo

identificador

Valor

Operadores Aritmticos Operador + * / % Significado Suma Resta Multiplicacin Divisin Modulo Ejemplo nEsto + nAquello nEsto nAquello nEsto * nAquello nEsto / nAquello nEsto % nAquello

Nota:

El lenguaje Java extiende la definicin del operador + para incluir la concatenacin de cadenas.

Los operadores + y - tienen versiones unarias que seleccionan el signo del operando. Operador + Uso + op - op Descripcin Indica que el valor es positivo Indica que el valor es negativo

Adems, existen dos operadores de atajos aritmticos, ++ y -Smbolo -Sentencia abreviada a-Sentencia no abreviada a=a-1 Descripcin Primero se utiliza el valor de la variable a y despus se decrementa en uno Primero se decrementa en uno el valor de a y despus se utiliza la variable a Primero se utiliza el valor de la variable a y despus se incrementa en uno Primero se incrementa en uno el valor de a y despus se utiliza la variable a

--a

a=a-1

++

a++

a=a+1

++a

a=a+1

Operadores relacionales Operador Uso > >= < <= == != op1 > op2 op1 >= op2 op1 < op2 op1 <= op2 op1 == op2 op1 != op2 Devuelve true si op1 es mayor que op2 op1 es mayor o igual que op2 op1 es menor que op2 op1 es menor o igual que op2 op1 y op2 son iguales op1 y op2 son distintos

Operadores Lgicas Operador && || & | ^ ! Descripcin And condicional Or condicional And lgico Or lgico Or exclusivo Negacin Corto Circuito Si No

Operadores de Asignacin Java proporciona varios operadores de asignacin que permiten realizar operaciones aritmticas y lgicas.

Smbolo =

Sentencia abreviada a=b

Sentencia no abreviada a=b

Descripcin El valor de b se asigna a la variable a El valor de a se multiplica por b y se asigna a la variable a El valor de a se divide por b y se asigna a la variable a El valor de a se divide por b y el resto (o residuo) se asigna a la variable a El valor de a se suma a valor de b y se asigna a la variable a El valor de a se le resta el valor de b y se asigna a la variable a

*=

a*=b

a=a*b

/=

a/=b

a=a/b

%=

a%=b

a=a%b

+=

a+=b

a=a+b

-=

a-=b

a=a-b

Reglas de prioridad Prioridad 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Operadores new (objeto) . [] () Agrupacin ++ -- prefijo ++ -- postfijo ~ ! - + Unarios (tipo) Cast * / % +<< >> >>> < <= > >= instanceof == != & ^ | && || ? : condicional = *= /= %= += -= , Seleccin Simple if (Expresin) Accin; o if (Expresin) Accin; Doble if (Expresin) accin 1; else accin 2; if (Expresin) { accin1; accin 2; . . accin n; } else { accin1; accin 2; . . accin n; } Asociatividad I-D D-I I-D D-I D-I I-D I-D I-D I-D I-D I-D I-D I-D I-D I-D D-I D-I I-D

if (Expresin) {accin1; accin2,,accin n} ; o if (Expresin) { accin1; accin 2; . . accin n; }

Seleccin mltiple: switch (selector) { case constante 1: Accin 1; break; case constante 2: Accin 2; break; default: Accin n; }

Ciclos for 1. for (Inicializacin; Condicin; Incremento) sentencia; for (Inicializacin; Condicin; Incremento) { sentencia 1; sentencia 2; sentencia n;

2.

while 1. while (condicin) sentencia; while (condicin) { sentencia 1; sentencia 1; sentencia n; }

do while 1. do sentencia; while (condicin); 2.do { sentencia 1; sentencia 2; sentencia n; } while (condicin);

2.

Estructura de un Mtodo acceso static tipo NombreDelMtodo (Lista de Argumentos) { Declaracin de variables del mtodo Sentencias del mtodo [return tipo;] Donde: acceso Cada mtodo tiene asociado un tipo que se utiliza para controlar el acceso al mtodo. Entre estos se encuentran: public Este mtodo pblico se puede llamar de cualquier cdigo que tenga acceso a la clase. Este mtodo privado solo puede ser llamada desde otro mtodo de la clase en que se defini el mtodo privado. Este mtodo protegido se puede llamar desde otros mtodos de la clase en que el mtodo esta definido y por cualquier otro mtodo de las clases que heredan de la clase en que est definido el mtodo. Tambin est disponible en cualquier objeto de las clases pertenecientes al mismo paquete que la clase en que est definido el mtodo. Si no especifica ningn tipo de acceso, se utiliza el acceso por defecto, esto significa que el mtodo es accesible a todas las clases contenidas en le mismo paquete, pero no esta accesible fuera de ese paquete.

private

protected

defecto

static

Declara el mtodo como mtodo de la clase y no como mtodo del objeto (no hereda el mtodo).

Nota: Un mtodo declarado como static solo puede ser llamado por otro mtodo static y hacer referencia a variables static.

Declaracin de arreglos unidimensionales Al igual que con cualquier variable en Java, los arreglos se deben declarar antes de ser utilizados.
Tipo [ ] identificador

,
Tipo identificador [ ]

,
Declaracin de arreglos bidimensionales (matriz)
Tipo [ ] [ ] identificador

,
Tipo identificador [ ] [ ]

,
Arreglos multidimencionales int cubo [ ][ ][ ] = new int [4][5][3];

z x 5

10

Declaracin de clases.
[public] class NombreDeLaClase { Declaracin de variables miembro de la clase [acceso] [static] tipo identificador ; , [acceso] [static] tipo NombreDelMtodo1 (Lista de Argumentos) { Declaracin de variables del mtodo 1 Sentencias del mtodo 1 [return tipo;] } [acceso] [static] tipo NombreDelMtodo2 (Lista de Argumentos) { Declaracin de variables del mtodo 2 Sentencias del mtodo 2 [return tipo;] } }

Creacin de objetos. Una vez que una clase ha sido definida, un programa puede crear una instancia de la clase denominado objeto. Un objeto se crea por medio del operador new aplicado a un constructor de clase. Formato para definir una referencia de un objeto: NombreDeClase identificadorObjeto; Formato para crear un Objeto: identificadorObjeto = new NombreDeClase(Lista de Argumentos);

11

Constructores Constructores por defecto Un constructor que no tiene parmetros se le llama constructor por defecto. Un constructor por defecto normalmente inicializa las variables con un valor por defecto class Punto { private int x; private int y; Punto () { x = 0; y = 0; } Punto (int x, int y) { this.x = x; this.y = y; } Regla: Java crea automticamente un constructor por defecto cuando no existe otro constructor. Tal constructor inicializa las variables tipo int, float, double, long con cero, las booleanas con false y las referencias con null. Precaucin: Tenga cuidado con la declaracin de una clase que slo tenga un constructor con argumentos. En ese caso si se omite un constructor sin parmetros no ser posible utilizar el constructor por defecto. class Punto { private int x; private int y; Punto (int x, int y) { this.x = x; this.y = y; } . } . Punto primerPunto = new Punto(); //constructor por defecto

// no es posible utilizar este constructor

12

Constructores alternativos A un constructor con parmetros se le denomina constructor alternativo class Punto { private int x; private int y; Punto () { x = 0; y = 0; } Punto (int x, int y) { this.x = x; this.y = y; } Constructores sobre cargados Al igual que la sobrecarga de mtodos, se pueden sobrecargar los constructores. Esta tcnica es muy utilizada porque proporciona medios alternativos para inicializar objetos nuevos de una clase. public class EquipoSonido { private int potencia; private int voltios; private int numCd; private String marca; EquipoSonido() { marca = Sin Marca; } EquipoSonido(String m) { marca = m; } EquipoSonido(String m, int p, int v) { marca = m; potencia = p; voltios = v; } .. .. // constructor por defecto

// constructor alternativo

Otros temas: Herencia. Polimorfismo. Archivos.

13

I. Tipos de datos. El tipo de dato representa el conjunto de valores que puede tomar una variable. I.1. Tipos de datos. I.1.1. Tipos de datos simples. Los tipos de datos simples representan un conjunto ordenado de valores (ordinales o escalares) y tipos de datos numrico (enteros o reales). Tipo de datos de datos simples en Java son:

Tipo boolean char byte short int long

Tamao en bits 1 16 8 16 32 64

Rango de valores true o false Nota: El No. de bits puede variar segn la plataforma \u0000 hasta \uFFFF' Conjunto Unicode de ISO -128 a +127 -27 a 27 1 -32,768 a +32,767 -215 a 215 1 -2,147,483,648 a +2,147,483,647 -231 a 231 1 -9,223,372,036,854,775,808 a +9,223,372,036,854,775,807 -263 a 263 1 Rango negativo: -3.4028234663852886E+38 hasta -1.40129846432481707E-45 Rango positivo: 1.40129846432481707E-45 hasta 3.4028234663852886E+38 Rango negativo: -1.797693134862157E308 hasta -4.94065645841246544E324 Rango positivo: 4.94065645841246544E324 hasta 1.797693134862157E308

float

32

double

64

I.1.1.1. Bit Byte

Definicin de bit, byte, carcter y palabra.

Acrnimo de Binary digit. (dgito binario). Un bit es un dgito del sistema de numeracin binario (0, 1). Unidad bsica de almacenamiento de informacin, equivale a ocho bits (octeto). 14

Nombre Kilo Mega Giga Tera Peta Exa Zetta Yotta Bronto Geop

Abrev. K M G T P E Z Y B Ge 210 = 1024 2


20

Factor 103 = 1000 106 = 1 000 000 109 = 1 000 000 000

Tamao

= 1 048 576

230 = 1 073 741 824 240 = 1 099 511 627 776 2


50

1012 = 1 000 000 000 000 1015 = 1 000 000 000 000 000 1018 = 1 000 000 000 000 000 000 1021 = 1 000 000 000 000 000 000 000 1024 = 1 000 000 000 000 000 000 000 000 1027 = 1 000 000 000 000 000 000 000 000 000 1030 = 1 000 000 000 000 000 000 000 000 000 000

= 1 125 899 906 842 624

260 = 1 152 921 504 606 846 976 270 = 1 180 591 620 717 411 303 424 2
80

= 1 208 925 819 614 629 174 706 176

290 = 1 237 940 039 285 380 274 899 124 224 2100 = 1 267 650 600 228 229 401 496 703 205 376

Carcter Cualquier signo tipogrfico. Puede ser una letra, un nmero, un signo de puntuacin o un espacio. Palabra En gramtica tradicional es cada uno de los segmentos limitados por pausas o espacios en la cadena hablada o escrita que puede aparecer libremente en cualquier posicin y que est dotada de una funcin. I.1.1.2. Manipulacin de bits.

Los operadores a nivel bits pueden manipular los bits de operandos integrales, es decir, operaciones con datos tipo byte, char, short, int y long. Los operadores a nivel bits Operador AND a nivel bits OR a nivel bits OR exclusivo Desplazamiento a la izquierda Desplazamiento a la derecha con signo Desplazamiento a la derecha sin signo Complemento a nivel bits Smbolo & | ^ << >> >>> ~

15

Funcionamiento de los operadores Operador & | ^ << Descripcin Los bits en el resultado se hacen 1 si los bits correspondientes en ambos operandos son 1. Los bits en el resultado se hacen 1 si por lo menos uno de los bits correspondientes es 1. Los bits en el resultado se hacen 1 si cuando menos uno de los bits correspondiente es 1 y el otro cero o viceversa. Desplaza los bits del primer operador a la izquierda, segn el nmero de bits especificados por el segundo operador; rellena los bits de la derecha con 0s. Desplaza los bits del primer operador a la derecha, segn el nmero de bits especificados por el segundo operador. Si el primer operador es negativo, se rellenan los bits con 1s desde la izquierda; en caso contrario, se rellenan los bits con 0s desde la izquierda. Desplaza los bits del primer operador a la derecha, segn el nmero de bits especificados por el segundo operador; rellena los bits con 0s desde la izquierda. Todos los bits que sean 0 se hacen 1, y todos los bits que sean 1 se hacen 0.

>>

>>> ~

Operadores a nivel bits valor1 &= valor2 valor1 |= valor2 valor1 ^= valor2 valor1 <<= valor2 valor1 >>= valor2 valor1 >>>= valor2

Descripcin Operador de asignacin AND a nivel bits: valor1 = valor1 & valor2. Operador de asignacin OR a nivel bits: valor1 = valor1 | valor2. Operador de asignacin OR Exclusivo a nivel bits. valor1 = valor1 ^ valor2. Operador de asignacin de desplazamiento a la izquierda: valor1 <<= valor2. Operador de asignacin de desplazamiento a la derecha con signo: valor1 >>= valor2. Operador de asignacin de desplazamiento a la derecha sin signo: valor1 >>>= valor2.

16

Operador And Valor1 Valor2 Valor1 & Valor2 2527892 1534956 393860

Byte 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Byte 3 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0

Byte 2 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 0

Byte 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0

Operador Or Valor1 Valor2 Valor1 | Valor2 2527892 1534956 3668988

Byte 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Byte 3 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1

Byte 2 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1

Byte 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 0

Operador Or exclusivo Valor1 Valor2 Valor1 ^ Valor2 2527892 1534956 3275128

Byte 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Byte 3 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1

Byte 2 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1

Byte 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 0 0

Operador Complemento Valor1 ~Valor1 2527892 -2527893

Byte 4 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Byte 3 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 1

Byte 2 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1

Byte 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1

Operador Desplazamiento a la izquierda Valor1 Valor1 << 1 2527892 5055784

Byte 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Byte 3 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 1

Byte 2 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1

Byte 1 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0

Operador Desplazamiento a la derecha con signo Valor1 Valor1>>2 2527892 631973

Byte 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Byte 3 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1

Byte 2 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0

Byte 1 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1

Operador Desplazamiento a la derecha con signo Valor1 Valor1>>2 -2527893 -631974

Byte 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Byte 3 1 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0

Byte 2 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1

Byte 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0

Operador Desplazamiento a la derecha sin signo Valor1 Valor1>>>2 -2527893 1073109850

Byte 4 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1

Byte 3 1 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0

Byte 2 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1

Byte 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0

17

18

Producto de Aprendizaje: 1. 2. Implemente el programa ImprimeBits. Escriba un programa en Java que lea dos nmeros y les aplique los operadores: AND a nivel bit, OR a nivel bit, OR exclusivo a nivel bit y el complemento, el programa deber desplegar los nmeros, el resultado y as como su representacin a nivel bit. Elabore un programa en Java que lea dos nmeros, y al primero aplique el numero de desplazamiento del segundo, los desplazamientos que le debe de aplicar son: desplazamiento a la izquierda (<<), desplazamiento a la derecha con signo (>>) y desplazamiento a la derecha sin signo (>>>); el programa debe de desplegar en pantalla el primero numero, el numero resultado del desplazamiento y su correspondiente representacin a nivel bit. I.1.1.3. Representacin de datos simples.
Enteros Carcter Lgicos byte short int long char boolean

3.

Predefinidos Ordinal Definidos por el usuario Simple Reales Cronolgicos Apuntador, punteros o referencias

Enumerados Subrango

float double

No Ordinal

Tipos de datos Compuesto o Complejo

Cadenas

String StringBuffer

Estructura de datos

Arreglos Registros Listas Conjuntos rboles Grafos

Arrays Vector Class

Abstractos

abstract class

19

I.1.2. Tipos de datos Abstractos. Un tipo de dato abstracto o TDA es un modelo matemtico compuesto por una coleccin de operaciones definidas sobre un conjunto de datos. La abstraccin de datos consiste en ocultar las caractersticas de un objeto y obviarlas, de manera que solamente utilizamos el nombre del objeto en nuestro programa. Ejemplo Perro. A esto se le llama Abstraccin y es un concepto muy til en la programacin, ya que un usuario no necesita mencionar todas las caractersticas y funciones de un objeto cada vez que ste se utiliza. En Java para que una clase sea abstracta se debe declarar con la palabra reservada abstract. Una clase abstracta por lo general tiene uno o ms mtodos abstractos (los mtodos static no pueden ser abstractos). Un mtodo abstracto es un mtodo con la palabra reservada abstract en su declaracin. public abstract class NombreDeClase { public abstract tipo Mtodo () ; } Ejemplo: La superclase abstracta Figura, la cual declara la interfaz para la jerarquas (es decir, el conjunto de mtodos que puede invocar un programa en todos los objetos Figura), observe tambin que en el diagrama de clases, el nombre de la clase abstracta Figura aparece en cursivas.
Figura

Punto

Circulo

Cilindro

muestraArea Figura Punto Circulo Cilindro 0.0 0.0 r2 2rh + 2r2

muestraVolumen muestraNombre 0.0 0.0 0.0 r2h abstract Punto Circulo Cilindro

toString Predeterminado de Object [x,y] [x,y]; Radio = r [x,y]; Radio = r; Altura = h

20

La clase figura proporciona los mtodos muestraArea, muestraVolumen y muestraNombre, adems como es una extensin de la clase Object, hereda los 11 mtodos, entre ellos se encuentran toString.

21

22

23

Producto de Aprendizaje: 4. Implemente el programa de la clase abstracta Figura y las clases Punto, Crculo, Cilindro y PruebaHerenciaAbstracta. I.2. Estructura de datos. Arreglos Registros Listas Conjuntos rboles Grafos

Estructura de datos

I.2.1. Definicin. Forma de organizar un conjunto de datos elementales (un dato elemental es la mnima informacin que se tiene en el sistema) con el objetivo de facilitar la manipulacin de estos datos como un todo o individualmente. 24

Producto de Aprendizaje: 5. Investigar y proporcionar un ejemplo de los siguientes puntos: I.2.2. Clasificacin. I.2.2.1. Estructuras de datos Lineales y no lineales. I.2.2.2. Estructuras de datos Dinmicas y estticas.

25

También podría gustarte