2ppt-pdf - Escuela de Ingeniería Informática

Anuncio
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Estructura de Datos
ICI - 241
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.1 - Introducción
Un estructura de datos es una colección de datos que pueden ser
caracterizados por su organización y las operaciones que se definen en ellas.
Las estructuras de datos se utilizan,
generalmente, para procesar una colección
de valores que están relacionados entre sí
por algún método.
Por ejemplo: una lista de notas, una
serie de puntajes de un concurso o
una lista de temperaturas medidas a
lo largo de un período de tiempo.
Las estructuras de datos básicas que soportan la mayoría de los lenguajes de
programación son los estructuras estáticas.
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
1
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2 – Estructuras estáticas
Una estructura de datos estática es aquella en la que el tamaño ocupado en
memoria se define antes de que el programa se ejecute y no puede modificarse
dicho tamaño durante la ejecución del programa.
Entre las estructuras de datos estáticas se encuentran los arrays (vectores y
matrices), registros, archivos y cadenas.
1.2.1 – Arrays unidimensionales (Vectores)
Un array es un conjunto finito y ordenado de elementos homogéneos
Cada elemento puede ser identificado
Son del mismo tipo de datos
El array unidimensional o vector es el tipo de array más simple.
notas[0] notas[1]
notas[2] notas[3] ............................
notas[n]
Subíndice designa la posición del elemento
en el vector
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2.1 – Arrays unidimensionales (Vectores)
Las operaciones que se pueden realizar con vectores son: asignación, lectura,
escritura, recorrido, actualización(añadir, borrar, insertar), ordenación, búsqueda .
La notación algorítmica que utilizaremos es la siguiente:
Array [dimensiones] de <tipo de dato> : <nombre del array>
Array[0..100] de entero : numero
int numero[100];
Asignación:
<nombre del array> [subindice] <- <valor>
numero[0] <- 5
numero[0] = 5;
desde i = 1 hasta 5 hacer
For (i=1; i<=5; i++){
numero[i] <- 8
fin_desde
Desarrollado por
Ricardo Soto De Giorgis
numero[i]=8;
}
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
2
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2.1 – Arrays unidimensionales (Vectores)
Lectura:
leer (<nombre del array>[subindice])
leer (numero[0])
scanf(“%d”, &numero[0]);
Escritura:
escribir (<nombre del array>)[subindice])
escribir (“el número es: ”numero[0]);
printf (“el número es: %d”, numero[0]);
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
ICI 241 – Estructura de Datos
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2.1 – Arrays unidimensionales (Vectores)
Inserción:
/* Se desea insertar nuevo_elemento en la posición p */
/* i corresponde al índice del último elemento*/
mientras (i >= p) hacer
autos[i+1]<-autos[i]
i <- i-1
fin_mientras
autos[p]<- nuevo_elemento
while (i >= p){
autos[i+1]=autos[i];
i=i--;
}
autos[p]= nuevo_elemento;
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
3
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2.1 – Arrays unidimensionales (Vectores)
eliminar:
/* Se desea eliminar elemento en la posición j */
/* n corresponde al índice del último elemento*/
desde (i <- j) hasta n-1 hacer
autos[i]<-autos[i+1]
fin_desde
for (i = j;i<=n-1;i++){
autos[i]=autos[i+1];
}
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2.2 – Arrays bidimensionales(Matrices)
Un array bidimensional se puede considerar como un vector de vectores. Es
por consiguiente un conjunto de elementos homogéneos y ordenados en el que
se necesita especificar dos subíndices para poder identificar cada elemento del
array.
Fila 1
notas[0,0] notas[0,1]
..............
notas[1,0] notas[1,1]
............
notas[1,j]
notas[2,0] notas[2,1]
.............
notas[2,j]
Fila 2
notas[0,j]
.............
.............
notas[i,0] notas[i,1]
..............
notas[i,j]
Fila i
Columna 1
Desarrollado por
Ricardo Soto De Giorgis
Columna 2
Escuela de Ingeniería
Informática
Columna j
ICI 241 – Estructura de Datos
4
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2.2 – Arrays bidimensionales(Matrices)
Las operaciones que se pueden realizar con matrices son: asignación, lectura,
escritura, recorrido, actualización(añadir, borrar, insertar), ordenación, búsqueda.
La notación algorítmica que utilizaremos es la siguiente:
Array[dimension fila, dimension columna] de <tipo de dato>:<nombre del array>
Array[0..100,0..50] de entero:numero
int numero[100][50];
Asignación:
<nombre del array> [subindice fila,subindice columna] <- <valor>
numero[0,0] <- 5
numero[0][0] = 5;
desde i = 1 hasta 5 hacer
For (i=1; i<=5; i++){
desde j = 1 hasta 5 hacer
For (j=1; j<=5; j++){
numero[i,j] <- 8
numero[i][j]=8;
fin_desde
}
fin_desde
Desarrollado por
Ricardo Soto De Giorgis
}
Escuela de Ingeniería
Informática
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
ICI 241 – Estructura de Datos
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2.2 – Arrays bidimensionales(Matrices)
Lectura:
leer (<nombre del array>[subindice fila, subindice columna])
leer (numero[0,0])
scanf(“%d”, &numero[0][0]);
Escritura:
escribir (<nombre del array>)[subindice fila, subindice columna])
escribir (“el número es: ”numero[0,0]);
printf (“el número es: %d”, numero[0][0]);
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
5
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2.3 – Arrays multidimensionales
Curso
Un array puede ser definido de tres dimensiones, cuatro dimensiones, hasta de
n-dimensiones. En general, un array de n-dimensiones requiere que los valores
de los n-subíndices puedan ser especificados a fin de identificar un elemento
individual del array.
ra
re
ar
C
Sexo
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2.3 – Arrays multidimensionales
Las operaciones que se pueden realizar con matrices son: asignación, lectura,
escritura, recorrido, actualización(añadir, borrar, insertar), ordenación, búsqueda.
La notación algorítmica que utilizaremos es la siguiente:
Array[dimension i, dimension j,... dimension n] de <tipo de dato>:<nombre del
array>
Array[0..100,0..50,0...20] de entero:numero
int numero[100][50][20];
Lectura:
leer (<nombre del array>[subindice i, subindice j,... subindice n])
leer (numero[0,0,0])
scanf(“%d”, &numero[0][0][0]);
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
6
Descargar