Estructura de Datos ICI - 241 - Escuela de Ingeniería Informática

Anuncio
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
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.
Estructura de Datos
ICI - 241
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
Desarrollado por
Ricardo Soto De Giorgis
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
Entre las estructuras de datos estáticas se encuentran los arrays (vectores y
matrices), registros, archivos y cadenas.
Un array es un conjunto finito y ordenado de elementos homogéneos
Son del mismo tipo de datos
El array unidimensional o vector es el tipo de array más simple.
notas[2] notas[3] ............................
notas[n]
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
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>
<nombre del array> [subindice] <- <valor>
numero[0] <- 5
numero[0] = 5;
desde i = 1 hasta 5 hacer
For (i=1; i<=5; i++){
fin_desde
ICI 241 – Estructura de Datos
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
int numero[100];
Asignación:
numero[i] <- 8
Subíndice designa la posición del elemento
en el vector
Escuela de Ingeniería
Informática
Escuela de Ingeniería Informática
Array[0..100] de entero : numero
1.2.1 – Arrays unidimensionales (Vectores)
Desarrollado por
Ricardo Soto De Giorgis
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
1.2.1 – Arrays unidimensionales (Vectores)
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.
notas[0] notas[1]
ICI 241 – Estructura de Datos
Capítulo 1 - Estructuras Estáticas
1.2 – Estructuras estáticas
Cada elemento puede ser identificado
Escuela de Ingeniería
Informática
Desarrollado por
Ricardo Soto De Giorgis
numero[i]=8;
}
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)
1.2.1 – Arrays unidimensionales (Vectores)
Lectura:
Inserción:
leer (<nombre del array>[subindice])
/* Se desea insertar nuevo_elemento en la posición p */
/* i corresponde al índice del último elemento*/
leer (numero[0])
mientras (i >= p) hacer
scanf(“%d”, &numero[0]);
autos[i+1]<-autos[i]
i <- i-1
fin_mientras
Escritura:
autos[p]<- nuevo_elemento
escribir (<nombre del array>)[subindice])
while (i >= p){
escribir (“el número es: ”numero[0]);
autos[i+1]=autos[i];
i=i--;
printf (“el número es: %d”, numero[0]);
}
autos[p]= nuevo_elemento;
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
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
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Escuela de Ingeniería Informática
Capítulo 1 - Estructuras Estáticas
1.2.2 – Arrays bidimensionales(Matrices)
1.2.1 – Arrays unidimensionales (Vectores)
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.
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
Fila 1
for (i = j;i<=n-1;i++){
notas[0,0] notas[0,1]
..............
notas[0,j]
notas[1,0] notas[1,1]
............
notas[1,j]
notas[2,0] notas[2,1]
.............
notas[2,j]
Fila 2
.............
autos[i]=autos[i+1];
.............
}
notas[i,0] notas[i,1]
..............
notas[i,j]
Fila i
Columna 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
Desarrollado por
Ricardo Soto De Giorgis
Columna 2
ICI 241 – Estructura de Datos
PONTIFICIA
UNIVERSIDAD CATOLICA DE VALPARAISO
Capítulo 1 - Estructuras Estáticas
Capítulo 1 - Estructuras Estáticas
1.2.2 – Arrays bidimensionales(Matrices)
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.
Columna j
Escuela de Ingeniería
Informática
Escuela de Ingeniería Informática
Lectura:
leer (<nombre del array>[subindice fila, subindice columna])
La notación algorítmica que utilizaremos es la siguiente:
Array[dimension fila, dimension columna] de <tipo de dato>:<nombre del array>
leer (numero[0,0])
scanf(“%d”, &numero[0][0]);
Array[0..100,0..50] de entero:numero
int numero[100][50];
Asignación:
<nombre del array> [subindice fila,subindice columna] <- <valor>
Escritura:
escribir (<nombre del array>)[subindice fila, subindice columna])
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
numero[i,j] <- 8
printf (“el número es: %d”, numero[0][0]);
numero[i][j]=8;
fin_desde
}
fin_desde
Desarrollado por
Ricardo Soto De Giorgis
escribir (“el número es: ”numero[0,0]);
For (j=1; j<=5; j++){
}
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
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
1.2.3 – Arrays multidimensionales
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.
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:
Curso
leer (<nombre del array>[subindice i, subindice j,... subindice n])
leer (numero[0,0,0])
scanf(“%d”, &numero[0][0][0]);
C
r
ar
a
er
Sexo
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
Desarrollado por
Ricardo Soto De Giorgis
Escuela de Ingeniería
Informática
ICI 241 – Estructura de Datos
2
Descargar