Академический Документы
Профессиональный Документы
Культура Документы
Julio de 2011
Introducci on
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
Introducci on
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
Estructuras
Introducci on
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
Estructuras
Introducci on
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
Estructuras
Introducci on
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
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
7 / 16
Estructuras
Introducci on
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
Estructuras
Introducci on
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
Estructuras
Introducci on
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
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
Estructuras
Introducci on
Para manipular los valores de los miembros de una estructura, se utiliza como operador el punto . Sintaxis C nombre_estructura.miembro=valor;
12 / 16
Estructuras
Introducci on
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
Introducci on
Arreglos de estructuras
Como cualquier otro tipo de dato, se puede declara un arreglo de tipo estructura Sintaxis C struct DatosEstudiante listado[n];
15 / 16
Estructuras
Introducci on
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 = ®1; 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