Está en la página 1de 11

M.C.

Karla Torres Ramrez


Estructura de Datos
Tema 1


1


ndice

Introduccin. __________________________________________________ 2
Definicin, importancia y utilidad de las estructuras de datos ____________ 2
Importancia y utilidad de las estructuras de datos _____________________ 3
Clasificacin de las estructuras de datos ____________________________ 3
1. Arreglos __________________________________________________ 4
Estructura de un arreglo _______________________________________ 4
Elementos del arreglo _________________________________________ 5
ndices del arreglo ____________________________________________ 5
Declaraciones de un arreglo ____________________________________ 5
Iniciacin del arreglo __________________________________________ 6
Asignacin directa ____________________________________________ 6
Lectura de los elementos del arreglo. _____________________________ 7
Insercin elementos de arreglos con el uso de ciclos _________________ 7
Extraccin de elementos de los arreglos unidimensionales ____________ 8
Escritura de elementos del arreglo ______________________________ 10
Extraccin de elementos del arreglo con el uso de ciclos ______________ 11

M.C. Karla Torres Ramrez
Estructura de Datos
Tema 1


2

Introduccin.

En la prctica, la mayor parte de informacin til no aparece aislada en forma de
datos simples, sino que lo hace de forma organizada y estructurada. Los
diccionarios, guas, enciclopedias, etc., son colecciones de datos que seran
intiles si no estuvieran organizadas de acuerdo con unas determinadas reglas.
Adems, tener estructurada la informacin supone ventajas adicionales, al facilitar
el acceso y el manejo de los datos. Por ello parece razonable desarrollar la idea
de la agrupacin de datos, que tengan un cierto tipo de estructura y organizacin
interna.
Como tendremos ocasin de ver, la seleccin de una estructura de datos frente a
otra, a la hora de programar es una decisin importante, ya que ello influye
decisivamente en el algoritmo que vaya a usarse para resolver un determinado
problema.
Definicin, importancia y utilidad de las estructuras de datos

Concepto: una estructura de datos es, a grandes rasgos, una coleccin de datos
(normalmente de tipo simple) que se caracterizan por su organizacin y las
operaciones que se definen en ellos. Por tanto, una estructura de datos vendr
caracterizada tanto por unas ciertas relaciones entre los datos que la constituyen
(p.e., el orden de las componentes de un vector de nmeros reales), como por las
operaciones posibles en ella. Esto supone que podamos expresar formalmente,
mediante un conjunto de reglas, las relaciones y operaciones posibles (tales como
insertar nuevos elementos o como eliminar los ya existentes). Por el momento y a
falta de otros, pensemos en un vector de nmeros, como el mejor ejemplo de una
estructura de datos.

Las estructuras de datos pueden ser de dos tipos: estructuras de datos
estticas y estructuras de datos dinmicas.
M.C. Karla Torres Ramrez
Estructura de Datos
Tema 1


3

ESTRUCTURAS DE DATOS ESTTICAS: Son aquellas en las que se asigna una
cantidad fija de memoria cuando se declara la variable. En grandes
ocasiones se necesitan colecciones de datos que crezcan y reduzcan su
tamao en memoria a medida que el programa progrese. Esto se logra
implementando las estructuras dinmicas.

ESTRUCTURA DE DATOS DINMICAS: Son aquellas cuya ocupacin en
memoria puede aumentar o disminuir en tiempo de ejecucin
Importancia y utilidad de las estructuras de datos

La programacin estructurada significa escribir un programa de acuerdo a las
siguientes reglas.
1.-El programa tiene un diseo modular
2.-Los mdulos son diseados de un modo descendente
3.-Cada mdulo se codifica utilizando las tres estructuras de control bsicas:
a) Secuencia
b) Seleccin
c) Repeticin
La programacin estructurada se refiere a un conjunto de tcnicas que aumentan
considerablemente la productividad del programa reduciendo en elevado grado el
tiempo requerido para escribir, verificar, depurar y mantener los programas. Utiliza
un nmero limitado de estructuras de control que minimizan la complejidad de los
programas y por consiguiente reducen los errores y hacen los programas en
general ms eficientes.
Clasificacin de las estructuras de datos

Estructuras de datos estticas

1.- Simples o primitivas
M.C. Karla Torres Ramrez
Estructura de Datos
Tema 1


4

a) boolean
b) char
c) int
d) real
2.- Compuestas
a) Arreglos
b) Conjuntos
c) Strings (Cadenas)
d) Registros
e) Archivos

Estructura de datos dinmicas

1.- Lineales
a) Pila
b) Cola
c) Lista

2.- No lineales
a) rboles
b) Grafos

1. Arreglos

Estructura de un arreglo

Un arreglo es una estructura de datos. En otras palabras, un arreglo consta de
elementos de datos organizados o estructurados en una forma particular. Esta
estructura de datos proporciona un medio conveniente para almacenar grandes
M.C. Karla Torres Ramrez
Estructura de Datos
Tema 1


5

cantidades de datos en la memoria primaria o del usuario. Existen arreglos
unidimensionales y multidimensionales.

Elementos del arreglo

Los elementos de un arreglo son los datos almacenados en ste y pueden ser de
cualquier tipo de datos que se hayan visto. De esta manera, un arreglo dado
puede almacenar elementos enteros, elementos de punto flotante, caracteres, y
elementos booleanos.
ndices del arreglo

Los ndices del arreglo localizan a los elementos del arreglo, en C, el compilador
en forma automtica asigna ndices enteros a la lista de elementos del arreglo
empezando con el ndice 0. Por lo tanto, el primer elemento del arreglo en la figura
1 se localiza en el ndice 0, y el ltimo elemento se localiza en el ndice n. Los
ndices empiezan con 0 y van a n.

Figura 1.



Declaraciones de un arreglo

La sintaxis de declaracin de arreglos es:
tipo nombre_arreglo [numero_de_elementos];

Los siguientes son dos ejemplos de declaraciones de arreglos vlidas en C:
M.C. Karla Torres Ramrez
Estructura de Datos
Tema 1


6


int CoordenadasDePantalla[5]; /*Un arreglo de 5 enteros */
char IDCompania[20]; /*Un arreglo de 20 caracteres */

Figura 2. Arreglo CoordenadasDePantalla con ndices de desplazamiento vlido

En la figura 2 se muestra el primer arreglo que fue declarado con el tipo de
nmeros enteros, llamado CoordenadasDePantalla, ocupa en memoria 5
localidades de memoria contiguas, cada una de ellas capaz de almacenar un
nmero entero. Actualmente es comn que los nmeros enteros sean de 32 bits,
esto hace que el arreglo CoordenadasDePantalla ocupe bits

Iniciacin del arreglo
C proporciona 3 maneras de iniciar elementos del arreglo: asignacin directa,
mediante lectura o usando ciclos.
Asignacin directa. El formato general para insertar un elemento, dentro un
arreglo, con asignacin directa es como sigue:

<nombre del arreglo>[ndice del arreglo] =valor del elemento;

Con las siguientes definiciones de arreglos:
char caracteres[6];
int enteros[3];
M.C. Karla Torres Ramrez
Estructura de Datos
Tema 1


7


Las asignaciones directas pueden ser como estas:
1. caracteres[0] ='H';
2. caracteres[5] ='\0';
3. enteros[0] = 16;
4. enteros[2] = -22;

Lectura de los elementos del arreglo. Tambin es posible usar cualquiera de las
funciones u objetos de entrada de C para insertar los elementos del arreglo
desde un teclado, como sigue:

scanf(%c, &caracteres[1]);
scanf(%d, &enteros[0]);


En este caso, el usuario deber escribir el valor del elemento del arreglo
respectivo desde el teclado y oprimir la tecla ENTER para ejecutar cada
enunciado. Deber escribir un carcter para el primer enunciado y un entero para
el segundo (Por qu?) El carcter escrito desde el teclado se almacenar en la
segunda posicin (ndice [1]) del arreglo caracteres, mientras que el entero escrito
desde el teclado se almacenar en la primera posicin (ndice [0]) del arreglo
enteros.

Insercin elementos de arreglos con el uso de ciclos. La desventaja obvia al
usar asignaciones directas para insertar elementos de arreglos es que se requiere
un enunciado de asignacin separado para llenar cada posicin del arreglo. Puede
automatizar el proceso de insercin usando una estructura de ciclo. Aunque
cualquiera de las tres estructuras de ciclo (while, do/while, for) se puede emplear,
la estructura for es la ms comn. A continuacin est el formato general para el
uso de un ciclo for:

for(int indice= 0; indice< tamao del arreglo; ndice++)
M.C. Karla Torres Ramrez
Estructura de Datos
Tema 1


8

{
<asigna o lee arreglo[indice]>
}
Considere el siguiente programa:
//LLENADO DE UN ARREGLO CON UN CICLO for


#include <stdio.h> // Para printf y scanf
// DECLARA EL TAMAO DEL ARREGLO
#define MAX 10;
main()
{
int muestra[MAX]; // DEFINE UN ARREGLO ENTERO
int i;
printf( "Escriba una lista de %d elementos, MAX);
for(i= 0; i< MAX; i++)
{
scanf(%d,&muestra[i]);
}
getch();
}

Extraccin de elementos de los arreglos unidimensionales.

ASIGNACIN DIRECTA. La extraccin de los elementos del arreglo usando
enunciados de asignacin es lo inverso de la insercin de elementos utilizando un
enunciado de asignacin. ste es el formato general:

Formato de asignacin directa (extraccin de elementos del arreglo)
<identificador del objeto variable> = <nombre del arreglo>[ndice del arreglo]
M.C. Karla Torres Ramrez
Estructura de Datos
Tema 1


9


Como ejemplo, suponga que se hacen las siguientes definiciones:

#define MAX 10;
int muestra[MAX];
int x;
Como puede observar, el arreglo muestra[] consta de 10 elementos enteros.
Ahora, suponga que el arreglo est lleno, Qu harn los siguientes enunciados?

x = muestra[0];
x = muestra[MAX- 1];
x = muestra[3] * muestra[5];
x = 2 * muestra[2] -3 * muestra[7];

El primer enunciado asigna el elemento almacenado en la primera posicin del
arreglo a la variable x. El segundo enunciado asigna el elemento almacenado en
la ltima posicin del arreglo a la variable x. El tercer enunciado asigna el producto
de los elementos localizados en los ndices [3] y [5] a x. Por ltimo, el cuarto
enunciado asigna a x dos veces el elemento localizado en el ndice[2] menos tres
veces el elemento localizado en el ndice [7]. Los ltimos dos enunciados
muestran cmo se pueden realizar las operaciones aritmticas con los elementos
del arreglo.

En todos los casos anteriores, los valores de los elementos del arreglo no se
afectan por las operaciones de asignacin. El principal requerimiento es que x
debe estar definida como el mismo tipo de datos de los elementos del arreglo para
no obtener resultados inesperados.
Como ejemplo final, considere estos enunciados de asignacin:

muestra[0] = muestra[MAX- 1];
M.C. Karla Torres Ramrez
Estructura de Datos
Tema 1


10

muestra[1] = Muestra[2] + Muestra[3];

Puede usted determinar qu pasa aqu? En el primer enunciado, el primer
elemento del arreglo se reemplaza por medio del ltimo elemento del arreglo, se
afecta el ltimo elemento del arreglo? No, porque aparece del lado derecho del
operador de asignacin. En el segundo caso, el segundo elemento del arreglo en
el ndice [1] se reemplaza por la suma del tercero y cuarto elementos del arreglo
en los ndices [2] y [3]. De nuevo, el tercero y cuarto elementos del arreglo no se
afectan por esta operacin, porque aparecen del lado derecho del operador de
asignacin.

Escritura de elementos del arreglo. Los objetos printf se usan para mostrar los
elementos del arreglo. Usemos el mismo arreglo para demostrar cmo escribir
elementos del arreglo. Aqu est de nuevo la definicin del arreglo:

#define MAX 10;
int muestra[MAX];

Qu se supone que harn los siguientes enunciados?

printf(%d, muestra[0]);
printf(%d, muestra[MAX- 1]);
printf(%d , %d, muestra[1] ,muestra[2] );
printf(%d, sqrt(muestra[6]);

El primer enunciado mostrar el elemento contenido en el ndice [0] del arreglo. El
segundo presentar el ltimo elemento del arreglo, localizado en el ndice[MAX
1]. El tercer enunciado dividir el elemento localizado en el ndice [1] entre el
elemento en el ndice [2] y mostrar el cociente entero. Por ltimo, el cuarto
M.C. Karla Torres Ramrez
Estructura de Datos
Tema 1


11

presentar la raz cuadrada del elemento localizado en el ndice [6]. Ninguno de
los valores del elemento del arreglo se afectar con estas operaciones.

Extraccin de elementos del arreglo con el uso de ciclos. Al igual que en la
insercin de elementos en un arreglo, la extraccin de elementos del arreglo con
ciclos requiere menos codificacin, especialmente cuando se extraen elementos
mltiples. De nuevo, se puede usar cualquier estructura de ciclo para este
propsito, pero los ciclos for son los ms comunes.

Considere el siguiente programa:

// MUESTRA UN ARREGLO CON UN CICLO for
#include <stdio.h> // Para printf y scanf
// ENUNCIA EL TAMAO DEL ARREGLO
#define MAX 10;
main()
{
int muestra[MAX]; // DEFINE UN ARREGLO ENTERO
for(int i= 0; i< MAX; ++i)
muestra[i] = i *i;
for(int i= 0; i< MAX; ++i)
printf(%d,muestra[i]);
getch();
} // FINAL DE main()

También podría gustarte