Sei sulla pagina 1di 8

ESTRUCTURA DE DATOS

AED-1026

2-3-5

INGENIERIA EN
SISTEMAS
COMPUTACIONES

MTI Jos Hernndez Rodrguez


INSTITUTO TECNOLOGICO SUPERIOR DE ACAYUCAN

OBJETIVO GENERAL DEL CURSO

Identificar, seleccionar y aplicar eficientemente tipos de datos abstractos, mtodos de


ordenamiento y bsqueda para la optimizacin del rendimiento de soluciones de problemas del
mundo real.

COMPETENCIAS PREVIAS
la sintaxis de un lenguaje orientado a objetos.

3.1. Listas.
3.1.1. Operaciones bsicas con
listas.
3.1.2. Tipos de listas.
3.1.3. Listas simplemente
enlazadas.
3.1.4. Listas doblemente
enlazadas.
3.1.5. Listas circulares.
3.1.6. Aplicaciones.
3.2. Pilas.
3.2.1. Representacin en
memoria esttica y dinmica.
3.2.2. Operaciones bsicas con
pilas.
3.2.3. Aplicaciones.
3.2.4. Notacin infija y postfija.
3.2.5. Recursividad con ayuda de
pilas.
3.3. Colas.
3.3.1. Representacin en
memoria esttica y dinmica.
3.3.2. Operaciones bsicas con
colas.
3.3.3. Tipos de colas: Cola
simple, Cola circular y Colas
dobles.
3.3.4. Aplicaciones: Colas de
prioridad.

DOS. Recursividad

1.1. Tipos de datos abstractos


(TDA).
1.2. Modularidad.
1.3. Uso de TDA.
1.4. Manejo de memoria esttica.
1.5. Manejo de memoria
dinmica

CUATRO.
Estructuras no lineales

TRES.
Estructuras lineales

UNO. Introduccin a
las estructuras de
datos

TEMARIO
2.1. Definicin
2.2. Procedimientos recursivos
2.3. Ejemplos de casos recursivos

4.1. Arboles.
4.1.1. Concepto de rbol.
4.1.2. Clasificacin de rboles.
4.1.3. Operaciones bsicas sobre rboles
binarios.
4.1.4. Aplicaciones.
4.1.5. Arboles balanceados (AVL).
4.2. Grafos.
4.2.1. Terminologa de grafos.
4.2.2. Operaciones bsicas sobre grafos.

ELABORADO: M.T.I JOSE HERNANDEZ RODRIGUEZ

ING. EN SISTEMAS COMPUTACIONALES

PAG. 1

ING. INFORMATICA

SIETE.
Anlisis de los
algoritmos

SEIS. Mtodos de
bsqueda

CINCO.
Mtodos de ordenamiento

5.1. Algoritmos de Ordenamiento


Internos
5.1.1. Burbuja.
5.1.2. Quicksort.
5.1.3. ShellSort.
5.1.4. Radix
5.2. Algoritmos de ordenamiento
Externos
5.2.1. Intercalacin
5.2.2. Mezcla Directa
5.2.3. Mezcla Natural

6.1. Bsqueda secuencial


6.2. Bsqueda binaria
6.3. Bsqueda por funciones de HASH

7.1. Complejidad en el tiempo.


7.2. Complejidad en el espacio.
7.3. Eficiencia de los algoritmos.

EVALUACIONES
UNIDAD 1
Asistencia
Portafolio
Prcticas
Evaluacin
Tareas
Particip.
Ejercicios
Programas

10%
10%
0%
40%
10%
10%
20%
0%

UNIDAD 5
Asistencia 10%
Portafolio 10%
Prcticas 56%
Evaluacin 0%
Tareas 0%
Particip. 10%
Ejercicios 0%
Programas 14 %

UNIDAD 2

UNIDAD 3

Asistencia 10%
Portafolio 10%
Prcticas
20%
Evaluacin 30%
Tareas
10%
Particip.
0%
Ejercicios
20%
Programas 0 %

Asistencia
Portafolio
Prcticas
Evaluacin
Tareas
Particip.
Ejercicios
Programas

UNIDAD 6
Asistencia 10%
Portafolio 10%
Prcticas 30%
Evaluacin 20%
Tareas 10%
Particip. 10%
Ejercicios 0%
Programas 10 %

10%
5%
45%
20%
5%
0%
0%
15 %

UNIDAD 4
Asistencia 10%
Portafolio 10%
Prcticas
40%
Evaluacin 30%
Tareas
10%
Particip.
0%
Ejercicios
10%
Programas
0%

UNIDAD 7
Asistencia 10%
Portafolio 10%
Prcticas 0%
Evaluacin 40%
Tareas 10%
Particip. 0%
Ejercicios 10%
Programas 20 %

ELABORADO: M.T.I JOSE HERNANDEZ RODRIGUEZ

ING. EN SISTEMAS COMPUTACIONALES

PAG. 2

ING. INFORMATICA

Unidad UNO
Introduccin a las estructuras de datos
COMPETENCIA ESPECFICA A DESARROLLAR
Representar y aplicar los tipos de datos abstractos por medio de un lenguaje de programacin.
Los tipos de datos de datos son fundamentales para la implementacin de estructuras ms
complejas. En general, cuando se define una variable como perteneciente a un tipo de datos se
efecta una abstraccin que incluye la especificacin de las celdas en que se puede almacenar, el
conjunto de valores vlidos que sta puede tomar, el conjunto de operaciones que se pueden
efectuar, en la cual la variable acta como operando.
Tipo de datos predefinidos (TDP).
Los lenguajes de programacin siempre han tenido, como parte de su estructura, la
posibilidad de definir una variable o una constante como perteneciente a un tipo de datos que el
lenguaje reconoce; por ello, se denomina TDP (tipo de datos predefinidos), es el caso de los enteros,
reales, booleanos y tipo caracteres
Tipo de datos estructurados (TDE)
Los lenguajes en general permiten definir TDE (tipos de datos estructurados), es decir,
compuestos con ms de un elemento, o sea que incorporan estructura de datos; todos los lenguajes
soportan los siguientes TDE: arreglos, registros, las cadenas de caracteres, archivos, etc.

1.1. Tipos de datos abstractos (TDA).


El primer objetivo de toda computadora es el manejo de la informacin o datos.
Un dato: Es la expresin general
computadora.

que describe los objetos con los cuales opera una

Existen dos clases de tipos de datos: simples (sin estructura) y los compuestos
(Estructurados).
1.1.1 Tipos de datos simples.
Los datos se clasifican en diversas categoras, segn el tipo de mquina o del lenguaje en
uso. Generalmente podemos encontrar las siguientes categoras: numricos, lgicos y de cadenas.
DATOS NUMRICOS:
El tipo numrico es el conjunto de los valores numricos. Su representacin se lleva a cabo
en los formatos ya conocidos (enteros, punto y fracciones decimales si estas existen).
Estos pueden representarse en dos formas distintas:

Tipo Numrico Entero (Integer).


Tipo Numrico Real (Real).
ELABORADO: M.T.I JOSE HERNANDEZ RODRIGUEZ

ING. EN SISTEMAS COMPUTACIONALES

PAG. 3

ING. INFORMATICA

ENTEROS
Es un conjunto finito de los nmeros enteros. Los enteros son nmeros completos, no tienen
componentes fraccionarios o decimales y pueden ser negativos y positivos.
Algunos ejemplos son:
37
-10
9
-25
50
REALES
Consiste en un subconjunto de los nmeros reales. Estos nmeros siempre tienen un punto
decimal y pueden ser positivos o negativos. Un nmero real consiste de un nmero entero y una
parte decimal. Algunos ejemplos son:
0.52664.32

6.5798.0

-9.3

47.23

DATOS CARCTER Y CADENAS:


Son los datos que representan informacin textual (palabras, frases, smbolos, etc.). No
representan valor alguno para efectos numricos. Pueden distinguirse porque son delimitados por
apstrofes o comillas.

Se clasifica en dos categoras:


Datos tipo carcter (char)
Datos tipo cadena (string).

DATOS TIPO CARCTER


Es un conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato de
este tipo contiene solo un carcter.
Reconoce los siguientes caracteres:

Caracteres Alfabticos (A,B,C,...A,a,b,c...z)

Caracteres Numricos (0,1,2...9)

Caracteres Especiales (+,-,*,/,^.,;<>.$,.........)


DATOS TIPO CADENA (STRING)
Es una sucesin de caracteres que se encuentran delimitados por una comilla (apstrofe) o
dobles comillas, segn el tipo de lenguaje de programacin. La longitud de una cadena de
caracteres es el nmero de ellos comprendidos entre los separadores o delimitadores.
Ejemplos:

Hola a todos

12 de octubre de 1496

LGICOS:
Tambin se le denomina Booleano, es aqul dato que solo puede tomar uno de dos valores:
Falso y verdadero. Se utiliza para representar las alternativas (si/no) a determinadas condiciones.
ELABORADO: M.T.I JOSE HERNANDEZ RODRIGUEZ

ING. EN SISTEMAS COMPUTACIONALES

PAG. 4

ING. INFORMATICA

Por ejemplo, cuando se pide si un valor entero sea primo, la respuesta ser verdadera o falsa, segn
sea.
Las categoras y tipos que se mencionaron anteriormente se conocen como Tipos Simples,
puesto que no poseen una estructura compleja. En forma adicional, cada lenguaje puede
proporcionar la utilizacin de Tipos Compuestos, siendo estos, datos que tienen una estructura
predeterminada.
Un TAD es un tipo definido por el usuario. En algunos Lenguajes de Programacin, existe el
problema de que algunos tipos de datos que el usuario requiere no se encuentran predefinido, pero
se pueden definir y posteriormente implementar, mejorando y ampliando las posibilidades que da
un lenguaje y simplificando el desarrollo algortmico. No existe una metodologa nica para definir
los TDA, algunas de las formas de hacerlo son fundamentalmente descriptivas y por ello se
encuentran diferentes versiones para el mismo TDA

1.2. Modularidad.
La programacin modular trata de descomponer un programa en un pequeo nmero de
abstracciones coherentes que pertenecen al dominio del problema y cuya complejidad interna es
susceptible de ser enmascarada por la descripcin de una interfaz. En consecuencia la
modularidad es la posibilidad de subdividir una aplicacin en piezas ms pequeas (denominadas
mdulos) cada una de la cuales debe ser independiente como sea posible, considerando la
aplicacin como un todo, as como de las otras piezas de las cuales es una parte. En esencia las
abstracciones se implementan en mdulos, conocidos como objetos, que se agrupan en una sola
entidad:

Un conjunto de datos.
Un conjunto de operaciones que actan sobre los datos.

1.3 Uso de TDA.


El proceso de excluir detalles no deseados o nos significativos al problema que se trata de
resolver se denomina abstraccin.
Un TDA es un tipo de dato definido por el programador que se puede manipular de un modo
similar a los tipos de datos definidos por el sistema.
Est formado por un conjunto vlido de elementos y un nmero de operaciones primitivas que
se pueden realizar sobre ellos.
Un TDA es el elemento bsico de la abstraccin de datos. Su desarrollo es independiente del
lenguaje de programacin utilizado, aunque este puede aportar mecanismos que faciliten su
realizacin. Debe verse como una caja negra.

1.3.1 Estructuras de datos.


Definicin: Es una coleccin de datos que pueden ser caracterizados por su organizacin
y las operaciones que se definen en ella.
ELABORADO: M.T.I JOSE HERNANDEZ RODRIGUEZ

ING. EN SISTEMAS COMPUTACIONALES

PAG. 5

ING. INFORMATICA

Los datos estructurados no son ms que un conjunto de datos, construidos con los datos
simples (int, flota, char, double, etc.).

La diferencia es la siguiente: los datos simples tienen como caracterstica


comn que
cada variable representa a un elemento y los datos
estructurados tienen como caracterstica comn que un identificador
(nombre) puede representar mltiples datos individuales.

1.3.2 Clasificacin.
Una posible clasificacin de los datos estructurados:

Arreglo
Registro
Estticos

Archivo
Conjunto
Cadena

Datos
estructurados

Pilas
Lineales
Colas
Dinmicos

Listas
enlazadas
No lineales

Arboles

Grafos

ELABORADO: M.T.I JOSE HERNANDEZ RODRIGUEZ

ING. EN SISTEMAS COMPUTACIONALES

PAG. 6

ING. INFORMATICA

1.4 Manejo de memoria esttica.


Concepto de Memoria: Es un espacio de almacenamiento de datos temporales que se
necesitan para hacer clculos, procesos, etc.
Cada ordenador viene con cierta cantidad de memoria fsica, referida generalmente como
memoria principal o RAM. Se puede pensar en memoria principal como un arreglo de celdas de
memoria, cada una de los cuales puede llevar a cabo un solo byte de informacin.
Memoria esttica: Es la memoria que se reserva en el momento de la compilacin antes de
comenzar a ejecutarse el programa. Los objetos mantienen la misma localizacin en memoria
durante todo el transcurso del programa. Los objetos administrados de este modo son variables
globales, variables static de funciones y miembros static de clases y literales de cualquier tipo.
Manejo de memoria esttica: La memoria esttica utiliza almacenamiento contiguo, esto
quiere decir que un elemento de la estructura de datos que utiliza este tipo de almacenamiento esta
de forma contigua con el siguiente elemento. La forma ms fcil de almacenar el contenido de una
variable en memoria en tiempo de ejecucin es en memoria esttica o permanente a lo largo de
toda la ejecucin del programa. No todos los objetos (variables) pueden ser almacenados
estticamente. Para que un objeto pueda ser almacenado en memoria esttica su tamao (nmero
de bytes necesarios para su almacenamiento) ha de ser conocido en tiempo de compilacin, como
consecuencia de esta condicin no podrn almacenarse en memoria esttica: Los objetos
correspondientes a procedimientos o funciones recursivas, ya que en tiempo de compilacin no se
sabe el nmero de variables que sern necesarias. Las estructuras dinmicas de datos tales como
listas, rboles, etc. ya que el nmero de elementos que las forman no es conocido hasta que el
programa se ejecuta.

1.5 Manejo de memoria dinmica

Memoria Dinmica: Es la memoria que se reserva en tiempo de ejecucin, despus de leer


los datos y de conocer el tamao exacto del problema. Como consecuencia se adapta mucho mejor
a las necesidades en cada caso.
Manejo de la Memoria Dinmica: La memoria dinmica a diferencia de la esttica permite
que las estructuras de datos aumenten su tamao a medida que lo requieren y solo utilizan el
espacio requerido por los datos que en un momento tienen. Java provee mecanismos para utilizar
este tipo de memoria. Para utilizar memoria dinmica necesitamos recurrir al uso de apuntadores o
referencias, en el caso de Java se utilizan las referencias.

ELABORADO: M.T.I JOSE HERNANDEZ RODRIGUEZ

ING. EN SISTEMAS COMPUTACIONALES

PAG. 7

ING. INFORMATICA

Potrebbero piacerti anche