Documentos de Académico
Documentos de Profesional
Documentos de Cultura
e1 e2 e3 e4
ESTRUCTURAS DE DATOS LINEALES
Ventajas:
Se puede acceder a cualquier elemento de la estructura de
datos en tiempo constante.
Desventajas:
Debe establecerse un tamaño que indica el número de
elementos que pueden ser almacenados en la estructura.
Se debe recorrer la estructura al momento de realizar
inserciones o eliminar elemento.
ARREGLOS UNIDIMENSIONALES
Definición.
Son estructuras que permiten almacenar un conjunto de datos
del mismo tipo.
Tienen un tamaño que corresponde a la cantidad de elementos
que puede almacenar.
Son estáticos dado a que se declaran de un cierto tamaño y lo
mantienen este durante la ejecución del programa.
Representación Lógica
ARREGLOS UNIDIMENSIONALES
Declaración.
tipo nombre[tamaño];
Ejemplos:
El índice puede ir del último al primer elemento: for (i=n-1;i >= 0;i--)
{ proceso }
ARREGLOS UNIDIMENSIONALES
Ejemplos
int x[100],i;
for(i=0;i<100;i++)
x[i]=i;
char letras[256];
int i;
for(i=0;i<256;i++)
letras[i]=i;
ARREGLOS UNIDIMENSIONALES
Ejemplos
int x[10],i,suma;
for(i=0;i<10;i++)
{
printf(“Introducir un número: %d: “,i);
scanf(“%d”,&x[i]);
}
for(suma=0,i=0;i<10;i++)
suma=suma+x[i];
printf(“La suma es: “,suma);
ARREGLOS UNIDIMENSIONALES
Pase de arreglos a funciones
Lenguaje C no permite el paso de un array por
valor a una función.
un array es siempre pasado por referencia.
Lo que se pasa es la dirección del primer
elemento del array.
El nombre de un array es un puntero al primer
elemento.
Sólo es posible pasar por valor elementos
individuales del array, pero no el array completo.
ARREGLOS UNIDIMENSIONALES
Pase de arreglos a funciones
#include <stdio.h>
void PasoValorReferencia( int *array, int valor)
{
array[5]=-8;
valor=4;
}
int main(void)
{
int array[10]={0,0,0,0,0,0,0,0,0,0};
PasoValorReferencia(array,array[3]);
printf(“Array[5] vale: %d y array[3] vale:%d\n”,array[5],array[3]);
return 0;
}
Salida:
Array[5] vale: -8 y array[3] vale: 0
ARREGLOS UNIDIMENSIONALES
Ejercicios
Función que lee datos y los almacena en un arreglo
Ejemplos:
struct empleado {
char nombre[ 20 ];
char apellido[ 20 ];
int edad;
char sexo;
double salarioPorHora;
} unEmpleado, empleados[ 52 ], *ptrEmpleado;
ESTRUCTURAS
Las estructuras no pueden compararse por medio de
operadores == y !=.
Debido a que el tamaño de los elementos de un tipo en
particular depende de la máquina, y debido a que las
consideraciones de alineación de almacenamiento también
dependen de la máquina, la representación de una estructura
también depende de la máquina.
ESTRUCTURAS
Inicialización de Estructuras:
struct carta {
char *cara;
char *palo;
};
typedef struct {
char *cara;
char *palo;
} Carta;
crea la estructura Carta sin la necesidad de una instrucción aparte typedef.