Você está na página 1de 3

Facultad de Informática, Electrónica y Comunicación

Inf200 e Inf212 – Estructura de Datos


Registro Vs. Vector
Estructuras o Registros
Una estructura o registro es una estructura de datos que agrupa variables que pueden tener tipos diferentes, es decir, en
una estructura podemos tener datos o valores de diferentes tipos. Cada componente de un registro se conoce como
campo o miembro. Comparemos un registro con un vector, para aclarar conceptos e identificar cuando conviene utilizar
una u otra o ambas estructura de datos.
Aspecto a considerar Vector Estructura
Tipo nombre[capacidad] Se especifica la capacidad Struct tiponuevo Los componentes de la
del vector, es decir, la { estructura se declaran
cantidad de componentes tipo1 campo1; dentro de ella, cada uno con
que puede tener. Todos los tipo2 campo2; su tipo y nombre de
componentes tienen el : variable, los tipos pueden
mismo tipo. El nombre del tipon campon; ser diferentes.
vector se considera una } El nombre (tiponuevo) de la
variable y representa la estructura se considera
dirección de memoria del struct tiponuevo nombre; como un tipo, no una
primer elemento. variable.

Ejemplo: Se ha definido un nuevo


int edad[15]; Ejemplo: tipo denominado emp. El
flotat salario[10], x[10]; struct emp área de memoria reservada
En edad se pueden {
Declaración para él, está dividida en tres
almacenar hasta 15 valores int id; partes, una para la variable
todos enteros y en salario float salario; id, otra para salario y otra
10 valores, todos reales. char sexo; para sexo, cada una con un
}; tipo diferente.

struct emp empleado; Se ha declarado una


variable del tipo emp
denominada empleado que
tiene asociada tres
componentes; id, salario y
sexo. En cada una de ellas
solo se podrá almacenar un
valor.

Diego Santimateo G. CRUV-FIEC 1


Facultad de Informática, Electrónica y Comunicación
Inf200 e Inf212 – Estructura de Datos
Registro Vs. Vector
Aspecto a considerar Vector Estructura
Nombre [índice] Se utiliza el nombre del Nombre.campo Para referirse a un campo
vector y entre corchetes de un registro se usa el
cuadrados se coloca el nombre de la variable
Ejemplo: índice que indica la posición Ejemplo: seguida de un punto y luego
que se quiere acceder. el nombre del campo.
x = edad[5]; y = empleado.salario / 2
y = salario[6] / 2; Se usa el campo salario de
Se usa el valor que está en la variable empleado.
la posición 5 del vector
edad y el de la posición 6
de salario.

Acceso a los flotat salario[10], aux[10]; Tenemos dos vectores del struct emp empleado, aux; Aquí hemos declarado dos
componentes mismo tipo, por lo cual, la variables del tipo emp. En
asignación utilizada es una asignación estamos
perfectamente válida. aux = empleado; pasando los campos de la
estructura empleado a la
A diferencia del registro, Esta asignación es estructura aux, porque son
aux [k] = salario [k]; cuando se usa un vector no equivalente a las tres del mismo tipo (emp).
podemos pasar todos los siguientes:
componentes en una sola
asignación, se hace aux.id = empleado.id; Esta asignación implica que
necesario un ciclo para aux.salario = empleado.salario; cada campo de empleado
lograr ese propósito. aux.sexo = empleado.sexo; será asignado al campo
correspondiente de aux.

Diego Santimateo G. CRUV-FIEC 2


Facultad de Informática, Electrónica y Comunicación
Inf200 e Inf212 – Estructura de Datos
Registro Vs. Vector
Aspecto a considerar Vector Estructura
Ejemplo: Un vector puede contener Ejemplo: Una estructura puede
una estructura. contener un vector.
struct emp struct emp
{ En este ejemplo tenemos { En el ejemplo se incluye el
int id; un vector x de cien int id; vector nom dentro de la
float salario; posiciones, cada una de las float salario; estructura emp, por lo tanto
char sexo; cuales contiene una char sexo; será un campo de la
char nom[25]; estructura, todas sus char nom[25]; variable empleado.
}; posiciones son del tipo };
struct emp y cada una
struct emp x[100]; contiene id, salario, sexo y struct emp empleado;
nom.

El salario que está en la


Anidamiento posición i se divide entre
y = x[i].salario / 2; dos y la primera letra del Se despliega la primera letra
c = x[i].nom[0]; nombre o cadena que está printf(“%c”, empleado.nom[0]); del nombre del empleado.
en la posición i se pasa a la
variable c, que debe ser
tipo char.

Se despliega la variable
print(“%s”, x[i].nom); nom que está en la posición
i del vector x.

Diego Santimateo G. CRUV-FIEC 3

Você também pode gostar