¿Para que son las estructuras de datos? ¿Que ventaja ofrecen?

Iniciado por Aikanáro Anário, 3 Junio 2010, 19:01 PM

0 Miembros y 1 Visitante están viendo este tema.

Aikanáro Anário

Soy nuevo en programacion y estoy aprendiendo C. He leido lo que es una estructura de datos, que es como una agrupacion de variables de diferente tipos de datos, pero la parte en que me pierdo es que para usar una variable de una estructura tenemos que declarar otra variable  :huh: no entiendo porque, ni para que y no entiendo si tiene alguna ventaja usar estructuras o que?

Ayudenme con eso...  :rolleyes:
Lo que faltaba en internet: http://binar10s.blogspot.com/

@synthesize

#1
Imagínate que tienes que hacer un gestor de habitaciones para un hotel. (Un ejercicio que hice hace poco, por cierto xD)

Para tener una buena organización, es tenerlo todo por estructuras, me explico:

Creas una estructura modelo para todas las habitaciones


typedef struct Habitacion
{
   int estado;
   char fecha[10];
   int tipo;
}cuarto;


Es un ejemplo muy pequeño, pero sirve.

Puedes crear varias habitaciones... Pero vamos a trabajar solo con 1.

Imagínate, que la variable estado, puede estar con el valor 0 (Libre) o 1 (Ocupado). Para comprobar en que estado está la habitación, hacemos:


if (cuarto.estado==1)
...
else
...



También podemos cambiar el estado,...


cuarto.estado =1;



Es un simple ejemplo de para qué puedes usar estructuras.. Luego cuando estudies punteros las vas a ver mucho mas, para crear varios tipos de estructuras dinámicas como listas, pilas y colas, tablas, etc.




Lo dicho, para acceder a los miembros de una estructura, usamos esto:

nombre_estructura.miembro

Mas adelante lo verás con punteros

nombre_estructura->puntero


:P





Aikanáro Anário

Entonces las estructuras son para tener los datos mas organizados? y para tener que declarar menos variables.

Con el ejemplo de las habitaciones del hotel, tendriamos que declarar las variables "estado", "fecha" y "tipo" para cada cuarto, pero si lo hacemos por estructuras solo tenemos que declara otra variable para referirse a otro cuarto (cuarto_n)
Lo que faltaba en internet: http://binar10s.blogspot.com/

@synthesize

Lo vas pillando, ahora lo va a entender mejor, vamos a implementar un array de estructuras (Estructura estática)




struct Nodo
{
   int Dato;
} array[10];

int cont;

for (cont=0;cont<10;cont++)
{
   array[cont].Dato =cont;
}



Con este código declaramos un array de estructuras, y las inicializamos con un For. SI tienes un Hotel con 10 habitaciones, lo puedes hacer igual, no se si me entiendes.

Tampoco quiero decirte todo lo que puedes hacer con estructuras, porque implica punteros... Como consejo, ensaya con lo que te he dicho, haz tus primeras estructuras y vas contando. Tampoco te he dicho, puedes usarlas con typedef como hago yo para el ejemplo del hotel.



@synthesize

Se me olvido decirte, el uso mas común de las estructuras es para crear nodos, y con ellos, todo tipo de estructuras dinámicas.. Aparte, como dije, son buenas para definir grupos de variables distintas que vayas a usar varias veces...

Horricreu

#5
A lo que dijo GNU López de las estructuras dinámicas, no es más que hacer un puntero a la estructura:

Código (cpp) [Seleccionar]
struct t_prueba
{
    int intprueba;
}

struct t_prueba *prueba;
prueba = new struct t_prueba;

//Se accede a los datos con el símbolo: ->


Saludos :P

@synthesize

Cita de: Horricreu en  3 Junio 2010, 21:32 PM
A lo que dijo GNU López de las estructuras dinámicas, no es más que hacer un puntero a la estructura:

Código (cpp) [Seleccionar]
struct t_prueba
{
    int intprueba;
}

struct t_prueba *prueba;
prueba = new struct t_prueba;

//Se accede a los datos con el símbolo: ->


Saludos  :P

Si todavía está aprendiendo a manejar estructuras estáticas, no creo que sea conveniente que empiece con dinámicas

Horricreu

#7
Ya ya, era sólo una guía para cuando empiece con dinámicas :silbar:

Saludos :P

Aikanáro Anário

Bueno, bueno, despacio que todavía no se lo que son nodos, ni typedef, ni punteros. Pero ahora tengo una mejor idea de lo que son las estructuras.

Se usan mucho las estructuras?
Lo que faltaba en internet: http://binar10s.blogspot.com/

@synthesize

Cita de: Aikanáro Anário en  3 Junio 2010, 22:45 PM
Bueno, bueno, despacio que todavía no se lo que son nodos, ni typedef, ni punteros. Pero ahora tengo una mejor idea de lo que son las estructuras.

Se usan mucho las estructuras?

Yo si las uso mucho la verdad, xD