Está en la página 1de 14

Punteros y

Estructuras
Estructuras de Datos: Conceptos
• Conjunto de datos de tipos iguales o diferentes que
se relacionan entre si y que se pueden operar como
un todo.

Datos Simples
Hacen referencia a un único valor a la vez en memoria

Entero, Real, Carácter, Lógico

Estáticos Arreglos, Registros, Archivos,


Cadenas

Datos Estructurados
Se refieren a un grupo de casillas de memoria

Dinámicos Listas, Arboles, Grafos


Estructuras de Datos: Implementación

• Para implementar alguna estructura de datos, primero es


necesario tener muy claro cómo va a ser el manejo de
memoria.
• La diferencia entre estructuras estáticas y dinámicas es el
manejo de memoria.

Estática Dinámica
Durante la ejecución del Durante la ejecución del
programa el tamaño de la programa el tamaño de la
estructura no cambia estructura puede cambiar
Estructuras de Datos
Tema: Memoria Estática
Subtema: Conceptos de Arreglos

• Definición: Colección finita, homogenea y ordenada de


elementos. Finita: Porque todo arreglo tiene un límite.
Homogenea: Porque todos los elementos son del mismo
tipo. Ordenada: Porque se puede determinar cuál es el
enésimo elemento.
• Un arreglo tiene dos partes: Componentes e índices
C1 C2 .... Cn Componentes

i0 i1 in Índices
 Componentes: Hacen referencia a los elementos que forman el arreglo.
 Índices: Permiten referirse a los componentes del arreglo en forma individual.
Estructuras de Datos
Tema: Memoria Estática
Subtema: Arreglos Unidimensionales

• Son los arreglos más simples y constan de un solo


índice, tambien se llaman vectores.
• Notación: Podría ser de diferentes maneras. Por ej:

Int x[10] ;

14 43 .... 4 Componentes

x0 x1 x9 Índices

 X hace referencia a todo el vector, mientras


que x0, o x1 hace referencia los elementos en
forma individual
Estructuras de Datos
Tema: Memoria Estática
Subtema: Arreglos Unidimensionales

• Los arreglos se almacenan en forma adyacente, así que


su representación en memoria es:
X0 ,Dirección z; X1 ,Dirección z+1; Xn ,Dirección z+n
 Cada elemento del arreglo se puede procesar como si fuera una variable
simple.Ej:

Suma = Suma + x[2]


X[2]= 15
i = 3
X[i] = 15
X[i+2] =15
 Sobre los vectores se pueden realizar las siguientes operaciones:
Lectura/Escritura, Asignación, Actualización(ins, eli, Mod), Ordenamiento y
Búsqueda.
Estructuras de Datos
Tema: Memoria Estática
Subtema: Arreglos Bidimensionales

• Estos arreglos constan de dos índices, tambien se


llaman matrices.
• Notación: Podría ser de diferentes maneras. Por ej:
Int M[3][3]

0 1 2 Indices
34 43 90 0
 Operaciones: Lectura, Escritura,
83 2 41 1 Asignación.

56 75 3 2
Componentes
Estructuras de Datos
Tema: Memoria Estática
Subtema: Registros(Estructuras)

• Un registro es una colección de datos, que pueden ser de


diferentes tipos. Cada uno de sus elementos se llama Campo.
• Notación: Podría ser de diferentes maneras. Por ej:
struct Domicilio
{ int Calle Domicilio
int Numero
char Ciudad[20] Calle Numero Ciudad
}
Struct Domicilio dir;

 El acceso a los campos se hace así:


variable_registro.id_campo.
 Por Ej: dir.Calle, dir.Numero, dir.Ciudad.
Estructuras de Datos
Tema: Memoria Estática
Subtema: Arreglos y Registros

• Se pueden presentar las siguientes


combinaciones:
I. Arreglos de Registros: Cada
elemento del registro es un arreglo.
Vector
struct Cliente
{ char Nombre[15] N T S N T S N T S
char Teléfono[10]
float Saldo 0 1 2
}
Struct Cliente Vector[3] Notación:
Vector[0].Nombre
Estructuras de Datos
Tema: Memoria Estática
Subtema: Arreglos y Registros

II. Registro Anidado: Por lo menos un campo


del registro es de tipo registro.
Struct Domicilio
{ int Calle Cliente
int Numero
char Ciudad[20] Dirección
Nombre Saldo
} Cll Num Ciu
Struct Cliente
{ chat Nombre[15]
struct Domicilio Dirección Notación:
float Saldo Cliente.Nombre
} Cliente.Dirección.Calle
Estructuras de Datos
Tema: Memoria Estática
Subtema: Arreglos y Registros

III. Registro con Arreglos: Por lo menos


un campo del registro es un array.
Struct Estudiante {
char Nombre[15]
Estudiante
char Código[4]
int Notas[2] Notas
} Nombre Código

Notación:
Estudiante.Nombre
Estudiante. Notas[0]
Estructuras de Datos
Tema: Memoria Dinámica
Subtema: Apuntadores

• Las variables contienen valores especificos, las


variables apuntador contienen direcciones de memoria
de otras variables.

 La variable “ptrcont” ptrcont


contiene la dirección de cont
memoria de la variable 29DC
“cont” 2

 Las variables apuntador estan asociadas a un tipo de dato. Por ej. Si el


valor de cont es entero la variable apuntador ptrcont debe ser de tipo
entero.
Estructuras de Datos
Tema: Memoria Dinámica
Subtema: Apuntadores

• Operadores: Una variable apuntador responde a dos


operadores:
– Operando de Dirección(&): Que devuelve la dirección de su
operando. Por ej:
int Y, *ptry
Y=5
Ptry = &Y
– Operando de Indirección(*): Que devuelve el alias de su
operando. Por ej:
int Y, *ptry
Y=5
Ptry = &Y
Printf(“%d”,*Ptry)
Ejercicios
1. Cree una función que retorne el largo de una cadena de caracteres.
2. Cree una función que copie una cadena de caracteres
3. Cree una función que invierta los valores de una cadena de caracteres
4. Cree una función para realizar conversiones de fecha (aaaa-mm-dd a dd-
mm-aaaa)
5. Cree una función que devuelva el mes de acuerdo al mes ingresado por
un numero, por ejemplo 1=“Enero”. Valide el ingreso de valores.
6. Calcule la distancia entre 2 puntos utilizando estructuras
7. Calcule el área de un rectángulo utilizando estructuras
8. Para el ejercicio 7 utilice funciones.
9. Para el ejercicio 7 utilice funciones y punteros.
10. Defina una estructura llamada Libro e ingrese 5 datos a ella

También podría gustarte