Вы находитесь на странице: 1из 16

Estructuras

M.C. Jos e Roberto P erez Cruz


Instituto Universitario Puebla

Julio de 2011

Introducci on

Estructuras de datos Registros/Estructuras

Estructuras de datos
En programaci on, una estructura de datos es una forma de organizar un conjunto de datos elementales1 con el objetivo de facilitar su manipulaci on Existen diversas estructuras de datos:
Arreglos (vectores y matrices) Registros Listas Pilas Colas Arboles Mont culos Grafos Tablas Hash
1 2 / 16

Un dato elemental es la m nima informaci on que se tiene en un sistema


M.C. Jos e Roberto P erez Cruz Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Estructuras de datos y sus operaciones

Una estructura de datos dene la organizaci on e interrelaci on de estos y un conjunto de operaciones que se pueden realizar sobre ellos Las operaciones b asicas son:
Alta: adicionar un nuevo valor a la estructura Baja: borrar un valor de la estructura B usqueda: encontrar un determinado valor en la estructura para realizar una operaci on con dicho valor, en forma secuencial o binario (siempre y cuando los datos est en ordenados)

3 / 16

M.C. Jos e Roberto P erez Cruz

Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Arreglos

Son secuencias de datos del mismo tipo Se consideran estructuras est aticas Son muy sencillos de implementar Permiten acceder a los datos, conociendo un ndice

4 / 16

M.C. Jos e Roberto P erez Cruz

Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Registros

Un registro se considera un tipo de dato compuesto formado por la uni on de varios elementos bajo una misma estructura Permiten coleccionar datos de diferentes tipos En lenguaje C, un registro recibe el nombre de estructura (struct) Los datos contenidos en una estructura pueden ser de tipo simple (caracteres, n umeros enteros, n umeros reales) o de tipo compuesto (arreglos, estructuras, listas) Una estructura permite manipular toda una colecci on de datos, como una sola variable

5 / 16

M.C. Jos e Roberto P erez Cruz

Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Estructuras (ejemplo)
Sup ongase que se desea almacenar los datos de un estudiante y sus notas Todo esto puede ser agrupado en una estructura que se podr a llamar: DatosEstudiante, que de forma pr actica dene un nuevo tipo de dato Estructura para los datos de un estudiante Estructura DatosEstudiante { cadena matricula; cadena nombre; cadena apellido; entero notaPrimerParcial; entero notaSegundoParcial; };
6 / 16 M.C. Jos e Roberto P erez Cruz Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Ventajas

Permiten una mejor organizaci on del c odigo Le otorga una mayor expresividad y en consecuencia un mejor c odigo Reduce el tama no del c odigo para hacer asignaciones de estructuras completas
Ejemplo: estudiante1 = estudiante2, donde ambas variables son del tipo DatosEstudiante

Adem as las estructuras pueden ser pasadas por par ametro

7 / 16

M.C. Jos e Roberto P erez Cruz

Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Sintaxis I

Notaci on algor tmica Estructura <nombre_estructura> { tipo_1 dato_1; tipo_2 dato_2; . . . tipo_n dato_n; } Una propiedad interesante del tipo de dato estructura es que pueden anidarse otras Estructuras indenidamente

8 / 16

M.C. Jos e Roberto P erez Cruz

Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Sintaxis II

Sintaxis C struct punto { int x; int y; }; El nombre de la estructura es punto y tiene como miembros un par de variables x y y

9 / 16

M.C. Jos e Roberto P erez Cruz

Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Sintaxis III
Se pueden declara una o m as variables del tipo estructura de la siguiente manera: Sintaxis C struct punto { int x; int y; } i, j, k;

i , j y k , son declaradas an alogamente como si con cualquiera de los otros tipos datos conocidos Por lo tanto, i , j y k son puntos
10 / 16 M.C. Jos e Roberto P erez Cruz Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Sintaxis IV
Una vez denida la estructura, pueden hacerse sucesivas declaraciones: Sintaxis C struct punto w;

Adem as se puede hacer la inicializaci on de las variables miembro, usando llaves: Sintaxis C struct punto h={10,20}; //coordenadas (10,20)

11 / 16

M.C. Jos e Roberto P erez Cruz

Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Acceso a los miembros de una estructura

Para manipular los valores de los miembros de una estructura, se utiliza como operador el punto . Sintaxis C nombre_estructura.miembro=valor;

De esta forma se accede a un miembro espec co de una estructura y se le cambia el valor

12 / 16

M.C. Jos e Roberto P erez Cruz

Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Anidamiento de estructuras
Las estructuras pueden estar anidadas unas dentro de otras:
Sintaxis C struct punto { int x; int y; }; struct triangulo { struct punto p1, p2, p3; } t; int main() { // En algun lugar dentro del programa t.p1 = {4, 6}; t.p2.x = 20; t.p2.y = 32; t.p3.x = t.p2.x - 10; t.p3.y = t.p3.y + t.p3.x; return 0; }
13 / 16 M.C. Jos e Roberto P erez Cruz Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Estructuras como par ametros


Las estructuras al igual que las variables simples, pueden ser pasadas por par ametro a cualquier funci on
Sintaxis C struct recta { float m; //pendiente float b; // termino independiente }; float area_triagulo (struct triangulo ta) { float base = longitud(ta.p1, ta.p2); struct recta r1 = ec_recta_perpendicular(ta.p1, ta.p2); struct recta r2 = ec_recta(ta.p1, ta.p2); struct point p_i = interseccion(r1, r2); float altura = longitud(p_i, p3); return (base * altura) / 2; }
14 / 16 M.C. Jos e Roberto P erez Cruz Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Arreglos de estructuras

Como cualquier otro tipo de dato, se puede declara un arreglo de tipo estructura Sintaxis C struct DatosEstudiante listado[n];

Acceso a las variables miembro nombre_arreglo[indice].miembro=valor;

15 / 16

M.C. Jos e Roberto P erez Cruz

Estructuras

Introducci on

Estructuras de datos Registros/Estructuras

Apuntadores a estructuras
Las estructuras tambi en pueden ser trabajadas a trav es de su direcci on de memoria Sintaxis C struct DatosEstudiante * pre; struct DatosEstudiante reg1; reg1.nombre = "Fernando"; reg1.apellido = "Castillo"; pre = &reg1; pre->notaPrimerParcial = 8; El operador de indireccion -> sirve para acceder a los miembros de una estructura a trav es de un apuntador
16 / 16 M.C. Jos e Roberto P erez Cruz Estructuras

Вам также может понравиться