Anda di halaman 1dari 4

ESTRUCTURAS DE DATOS

Algoritmos y
Estructura de Datos
UNIDAD DE
COMPETENCIA III

Forma en que debe organizarse o


estructurarse la informacin dentro de una
computadora.
La informacin del mundo real debe ser
transformada a lenguaje mquina para que
sea entendida por una computadora.
Se debe elegir una representacin adecuada
que permita realizar tal abstraccin entre
mundo real y computadora.

Maricela Quintana Lpez

ESTRUCTURAS DE DATOS
El objetivo de las estructuras de datos
es la optimizacin de la representacin de
los datos considerando:
almacenamiento eficiente en memoria.
acceso rpido a la informacin almacenada.

ESTRUCTURAS DE DATOS
Los tipos de datos vistos: INT, FLOAT,
DOUBLE, CHAR se conocen como tipos
elementales o bsicos. A partir de estos
tipos, podemos crear otros ms complejos.
Llamamos estructura de datos o tipo de
dato estructurado a los tipos de datos
construidos a partir de otros tipos de datos.

Maricela Quintana Lpez

ESTRUCTURAS DE DATOS
ejemplos:
tipo de datos complejo formado por una
pareja de datos reales.
tipo de datos fecha compuesto por tres
enteros.
tipo de datos direccin formado por cadenas
de caracteres y nmeros

Maricela Quintana Lpez

Clasificacin de las Estructuras


Considerando los tipos de datos que las
componen:
homogneas: cuando todos los datos que la
forman son del mismo tipo.
Arreglos

heterogneas: estn formadas por datos de


diferentes tipos.
Registros (struct)

Maricela Quintana Lpez

Maricela Quintana Lpez

Clasificacin de las E.D.


Considerando la forma en que se
almacena y se gestiona la memoria
Estticas: si poseen un nmero fijo de
elementos.
Dinmicas: el nmero de elementos que
contienen puede variar durante la ejecucin
del programa.

ARREGLOS
Estructura de datos ms usada en los
lenguajes de programacin.
Un arreglo es una estructura de datos
homognea formada por una cantidad fija
de datos del mismo tipo.

Maricela Quintana Lpez

Maricela Quintana Lpez

Arreglos

Arreglos
Una variable arreglo es una asociacin entre
un nombre y un grupo de localidades.
Cada localidad est asociada con un nmero.
A la primera localidad le corresponde el 0 y a
la ltima le corresponde n-1, donde n es el
nmero de localidades del arreglo.
En un arreglo de 10 localidades, la primera
localidad es 0 y la ltima es 9.
0

La caracterstica de una variable arreglo son los


corchetes([ ]). Una definicin de variables que los
incluya, indica que la variable es un arreglo.
La declaracin de una variable arreglo tiene la
siguiente forma...
tipo nombre[tamao];
En donde tipo es el tipo de datos y nombre es el
nombre de la variable. Los corchetes ([ ]) indican
que es una variable de tipo arreglo. Y tamao el
nmero de casillas.

Maricela Quintana Lpez

Ejemplos:

Maricela Quintana Lpez

Arreglos

La declaracin de la variable arreglo A que


contiene 15 valores enteros es:
int A[15];
La declaracin de la variable arreglo B que
contiene 10 valores de tipo char es:
char B[30];

Maricela Quintana Lpez

Para hacer referencia a una localidad


especfica del arreglo debemos escribir el
nombre de la variable y entre los
corchetes el ndice.
La forma de asignar un valor a una localidad
especfica del arreglo es la siguiente...
nombre[ ndice ] = valor;
char A[10];
A[2] = a;

Maricela Quintana Lpez

Arreglos

Ejemplo 1

La estructura inseparable de los arreglos es el


ciclo for. La mayora de los problemas de
arreglos son codificados con una estructura
bsica de for :
for (i=0; i<n; i++) { }
en donde la variable del ciclo (i) toma los valores:
0, 1, 2, ... , n-1
que son los ndices del arreglo.

A continuacin se muestra el procedimiento inicializa,


que recibe un arreglo de 10 valores enteros y le asigna a
cada localidad del arreglo el nmero de su localidad.
void inicializa (int a[10])
{
for (int i=0; i<10; i++)
{
a[i] = i ;
}
}

i=0 i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9

A 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
Maricela Quintana Lpez

Maricela Quintana Lpez

Ejemplo 2
Ahora mostramos el procedimiento
sumaDos, que recibe un arreglo de 10
valores enteros y le suma un dos (2) a cada
una de las localidades del arreglo.
void sumaDos (int a[10])
{
for (int i=0; i<10; i=0
i++)
i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9
a[i] = a[i] + 2;
}
A 2 3 4 5 6 7 8 9 10 11
0 1

2 3 4 5 6 7

8 9

Declarando e inicializando arreglos en C


int a[5] = { 1, 2, 3, 4, 5 };
char b[4] = { 'h', 'o', 'l', 'a' };
int c[10] = { 1, 2, 3, 4 };
float d[ ] = { 1, 2.5, 3.3, 4.76 };

Maricela Quintana Lpez

Estructuras

Maricela Quintana Lpez

Variables de tipo estructura

NUEVO TIPO

Al definir una estructura se crea un nuevo


tipo llamado struct identificador
Recordando una variable se define como:
tipo identificador;

As, declarar una variable de tipo


estructura sera:

Maricela Quintana Lpez

Maricela Quintana Lpez

Acceso a los campos de la estructura


Para acceder a los campos de una
estructura se utiliza el punto:
VariableTipoEstructura.campo

typedef
Es posible, usando typedef, renombrar el
tipo estructura con un nombre ms corto y
utilizarlo en las declaraciones.
Definicin de la
estructura

Renombra
Se declaran variables del
tipo de la estructura usando
el nuevo nombre
Maricela Quintana Lpez

Arreglos de tipo estructura


Una vez
declarada la
estructura,
se pueden
declarar
arreglos de
ese tipo.

Maricela Quintana Lpez

Arreglos de tipo estructura


struct Novio amores[30];
Declaramos un arreglo de 30 elementos del
tipo estructura novio.
Accedemos a ellos a travs de un ndice (por
el arreglo) y utilizamos un punto para los
campos de la estructura.
amores[3].nombre;
amores[3].edad;

Maricela Quintana Lpez

Estructuras

Maricela Quintana Lpez

Acceso a campos

Pueden usar estructuras definidas antes.


No pueden contener un miembro de su
mismo tipo, pero si pueden tener un
apuntador de su mismo tipo.
struct novio {
struct reg elbueno;
struct novio *siguiente;

Cuando se accede a
los campos de una
estructura a travs
de un apuntador se
sustituye el punto
por ->

};

Maricela Quintana Lpez

Maricela Quintana Lpez