You are on page 1of 20

Estructuras de Datos Algoritmos I

DEFINICIN:
Los datos estructurados llamados tambin estructuras de datos
es una coleccin o conjunto de datos simples que tiene el mismo
nombre.
El valor de la estructura de datos se determina por:
1. El valor de los elementos.
2. La composicin de los elementos

TIPOS DE ESTRUCTURAS DE DATOS:

Vectores
Matrices
Estticas Array
Registros
Ficheros o archivos
Pila
Colas
Listas enlazadas
Lineales
Dinmicas

rboles
No Grafos
lineales

Ing. Ruth Figueroa de Flores 1


Estructuras de Datos Algoritmos I

DEFINICIN:
Son aquellos en los que el tamao ocupado en la memoria se define antes
de que el programa se ejecute y no puede modificarse dicho tamao
durante la ejecucin del programa. Ejemplo de ello son los array
(Arreglos).

ARRAYS (ARREGLOS):
Un array (arreglo, vector o lista, tabla o matriz ) es una estructura de
datos utilizada para almacenar un conjunto de datos.

Un array se identifica : por su nombre y se asocia con un nombre de


variable valido.

Los componentes individuales de un array se llaman : elementos y


se distinguen entre ellos por el nombre del array seguido de uno o varios
ndices o subndice entre parntesis o corchetes.

Los elementos de un array se almacenan en la memoria de la


computadora ( un elemento por Posicin ).

LOS ARRAY SE CLASIFICAN EN:


Unidimensionales o Lineales (vectores o listas)
Bidimensionales (tablas o matrices)

Ing. Ruth Figueroa de Flores 2


Estructuras de Datos Algoritmos I

DEFINICIN:
Se define como un conjunto finito, homogneo y ordenado de datos.

Finito: Todo vector tiene un lmite; es decir debe determinarse cual ser
el nmero mximo de elementos que podrn formar parte del vector.

Homogneo: Esto significa que todos los elementos del vector sern del
mismo tipo (todos enteros, todos reales, todos boolanos etc.)

Ordenado: Se puede determinar cual es el primer elemento, el segundo,


el tercero y as sucesivamente hasta el ensimo elemento. Tambin el
orden es significativo, el orden viene dado por el subndice de un vector.
Los ndices son nmeros enteros o expresiones enteras que
generalmente inician con 1 pero, dependiendo del lenguaje pueden
iniciar con 0 u otro valor.

EJEMPLO: ELEMENTOS

Vector sueldo:

Sueldo(1) Sueldo(2) Sueldo(3) Sueldo(4) Sueldo(10)

$150 $500 $600 $1000 ........................................ $2000


Primer Segundo Tercer Cuarta Dcimo
Elemento Elemento Elemento Elemento elemento
PRESENTACIN:

Ing. Ruth Figueroa de Flores 3


Estructuras de Datos Algoritmos I

Los vectores se pueden representar como filas de datos o columnas de


datos, los elementos del vector sueldo de 10 elementos se representa de
la siguiente manera.

Sueldo(1) $150

Sueldo(2) $500

Sueldo(3) $1000

ELEMENTOS
ELEMENTOS
Sueldo(4) $1500
4 12 3 0 7 14

K(1) K(2) K(3) K(4) K(5) K(6)


........

........

Sueldo(10) $2000

COLUMNA FILA

DECLARACIN DE VECTORES:
As. Para declarar el vector sueldo de 10 elementos se hara de la
siguiente manera.
DIM Sueldo(10) : Real
Palabra reservada
Para declara un vector
Nombre del vector
Tamao

Tipo de datos

OPERACIONES CON VECTORES:


Ing. Ruth Figueroa de Flores 4
Estructuras de Datos Algoritmos I

Las operaciones con vectores se pueden realizar con elementos


individuales o sobre vectores completos mediante las instrucciones
bsicas y estructuras de control.

Sea el vector sueldo de 10 elementos:

Dim sueldo(10): Real // Crea la estructura llamada sueldo con 10


casillas de memoria y guardar datos
de tipo real.

Haciendo analoga con la memoria quedara as:

Sueldo(1) Sueldo(2) Sueldo(3) Sueldo(4) Sueldo(10)

$150.50 $520.7 $600 $1000 $2000


1 2 3 4 10

ndices

Diferentes operaciones con el vector sueldo considerando el


subndice de I = 2
Operaciones sobre Operaciones sobre vector
elementos completo
Asignacin Recorrido
Lectura Bsqueda
Escritura Insercin
Eliminacin
INSTRUCCIN (ACCIN) EFECTO

Imprimir sueldo( I ) Visualiza 520.7 (valor de sueldo( 2 ))

Ing. Ruth Figueroa de Flores 5


Estructuras de Datos Algoritmos I

Imprimir sueldo(I + 1) Visualiza 600 (valor de sueldo( 2+1 ))

Imprimir sueldo( I 1 ) + 50 Visualiza 200.50 (valor de sueldo( 1 )+50)

Imprimir sueldo( I ) + 100 Visualiza 620.7 (valor de sueldo( 2 )+100)

Sueldo(I 1 ) = Sueldo(I ) Asigna 520.7 a Sueldo(1)

Sueldo( I ) = Sueldo(I + 1 ) Asigna 600 a Sueldo(2)


Instruccin errnea ya que I > 10 y esa
Sueldo( I ) = Sueldo (11)
casilla de memoria no ha sido declarada

LECTURA Y ESCRITURA DE VECTORES COMPLETOS.


Para poder realizar operaciones con el vector completo se tiene que hacer
uso de estructuras repetitivas tales como mientras, desde o repetir.

LLENAR EL VECTOR SUELDO.


Desde I = 1 hasta 10 hacer I=1
Leer sueldo( I ) Mientras I <= 10 hacer
Fin-desde Leer Sueldo( I )
I=I+1
Fin-mientras
ESCRITURA DEL VECTOR SUELDO.
Desde I = 1 hasta 10 hacer I=1
Imprimir sueldo( I ) Mientras I <= 10 hacer
Fin-desde Imprimir Sueldo( I )
I=I+1
Fin-mientras

OPERACIONES CON ARREGLOS:


Las operaciones en la que intervienen los arreglos son:
1. Lectura /Escritura.
Ing. Ruth Figueroa de Flores 6
Estructuras de Datos Algoritmos I

2. Asignacin.
3. Actualizacin:
a) Insercin.
b) Eliminacin.
c) Modificacin.
4. Ordenacin.
5. Bsqueda.

LECTURA:
El proceso de lectura de un arreglo consiste en leer y asignar
un valor a cada uno de sus elementos. Supngase que se
desea leer todos los elementos del arreglo ARRE.

PSEUDOCDIGOS
Desde I = 1 hasta N hacer I = 1
Leer ARRE ( I ) Repetir I desde 1 hasta N hacer
Fin_desde Leer ARRE ( I )
I = I +1
Fin_desde

ESCRITURA:
El caso de la escritura es similar al de la lectura. Se debe escribir
el valor de cada uno de los componentes. Supngase que se

Ing. Ruth Figueroa de Flores 7


Estructuras de Datos Algoritmos I

desea escribir los primeros N componentes del arreglo ARRE en


forma consecutiva. Los pasos a seguir son los siguientes:

PSEUDOCDIGOS
Desde I = 1 hasta N hacer I = 1
Escribir ARRE ( I ) Repetir I desde 1 hasta N hacer
Fin_desde Escribir ARRE ( I )
I = I +1
Fin_desde

ASIGNACIN:
En general no es posible asignar directamente un valor a todo el
arreglo; sino que se debe asignar el valor deseado a cada
componentes.

PSEUDOCDIGOS
Desde I = 1 hasta N hacer I = 1
ARRE ( I ) = 0 Repetir I desde 1 hasta N hacer
Fin_desde ARRE ( I ) = 0
I = I +1
Fin_desde
ACTUALIZACIN
Pueden insertarse nuevos elementos, eliminar y/o modificar
algunos de los ya existentes. Para llevar acabo estas operaciones

Ing. Ruth Figueroa de Flores 8


Estructuras de Datos Algoritmos I

eficientemente se debe tener en cuenta si el arreglo est o no


ordenado.

a. ARREGLOS DESORDENADOS.
Consideramos un arreglo A de 100 elementos como el
presentado.

A
... ...

1 2 3 N N+1 100

a.1. INSERCIN:

Para insertar un elemento Y en un arreglo A desordenado


debe verificarse que existe espacio. Si se cumple esta
condicin, entonces se asignar a la posicin N + 1 el
nuevo elemento. A continuacin presentamos el diagrama
de flujo correspondiente.

EXPLICACIN DE LAS VARIABLES:


N : ENTERO // Almacena el nmero actual de elementos
del arreglo.
Y : ENTERO // Representa el valor que se va a insertar.
A : ENTERO // Arreglo unidimensional. Su capacidad
mxima es de 100 elementos.

PSEUDOCDIGO:
Insertar_Desordenado
Var
Entero: N, Y
Ing. Ruth Figueroa de Flores 9
Estructuras de Datos Algoritmos I

Dim A(100) : Entero


Inicio
Si N < 100 entonces
Leer Y
N = N+1
A(N) = Y
Sino
Imprimir No hay espacio para insertar el elemento Y
Finsi
Fin
A
... Y ...

1 2 3 N N+1 100

a.2. ELIMINACIN:
Para eliminar un elemento X de un arreglo A desordenado debe
verificarse que el arreglo no est vaco y que X se encuentre en el
arreglo. Si se cumple estas condiciones entonces se proceder a
recorrer todo los elementos.

EXPLICACIN DE LAS VARIABLES:


N : ENTERO // Almacena el nmero actual de elementos del
arreglo.
X : ENTERO // Representa el valor que se va a eliminar.
A : ENTERO // Arreglo unidimensional. Su capacidad mxima es
de 100 elementos.
I : ENTERO // Se utiliza como variable de control del ciclo
externo y como ndice del arreglo.
K : ENTERO // Se utiliza como variable de control del ciclo interno
y como ndice del arreglo A.
BAND : BOOLEANA // Se inicializa en falso. Cambia su valor a
verdadero si se encuentra el elemento a eliminar
en el arreglo, en cuyo caso se interrumpe el ciclo.
PSEUDOCDIGO:
Eliminar_Desordenado
Var
Entero: N, X, I, K,

Ing. Ruth Figueroa de Flores 10


Estructuras de Datos Algoritmos I

Booleana : BAND
Dim A(100) : Entero
Inicio
Si N >= 1 entonces
Leer X
I=1
BAND = FALSO
Mientras ( I <= N ) and ( BAND = FALSO ) hacer
Si A(I) = X entonces
BAND = VERDADERO
N=N1
Desde K = I hasta N hacer
A(K) = A(K+1)
Findesde
Sino
I=I+1
Finsi
Finmientras
Si BAND = FALSO entonces
Imprimir El elemento, X, no est en el arreglo
Finsi
Sino
Imprimir El arreglo A est vaco
Finsi

Fin
A
... ...

1 2 3 N-1 N N+1 100

a.3. MODIFICACIN:
Para modificar un elemento X por un elemento Y, de un arreglo A
que se encuentra desordenado debe verificarse que el arreglo no

Ing. Ruth Figueroa de Flores 11


Estructuras de Datos Algoritmos I

est vaco y que X se encuentre en el arreglo. Si se cumplen estas


condiciones entonces se proceder a su actualizacin. Puede
observarse que existen tareas comunes con la operacin de
eliminacin:
Determinar que el arreglo no est vaco.
Encontrar el elemento a modificar (eliminar).

EXPLICACIN DE LAS VARIABLES:

N : ENTERO // Almacena el nmero actual de elementos


del arreglo.

X : ENTERO // Representa el valor que se va a modificar.


A : ENTERO // Arreglo unidimensional. Su capacidad
mxima es de 100 elementos.
I : ENTERO // Se utiliza como variable de control del ciclo
y como ndice del arreglo.
K : ENTERO // Se utiliza como variable de control del ciclo
interno y como ndice del arreglo A.
BAND : BOOLEANA // Se inicializa en falso. Cambia su valor a
verdadero si se encuentra el elemento a
modificar en el arreglo, en cuyo caso se
interrumpe el ciclo.

Y : ENTERO // Representa al elemento que se introduce y


modifica al elemento X.

PSEUDOCDIGO:
Modificar_Desordenado
Var
Entero: N, X, I, K, Y
Ing. Ruth Figueroa de Flores 12
Estructuras de Datos Algoritmos I

Booleana : BAND
Dim A(100) : Entero
Inicio
Si N >= 1 entonces
Leer X
I=1
BAND = FALSO
Mientras ( I <= N ) and ( BAND = FALSO ) hacer
Si A(I) = X entonces
Leer Y
A(I) = Y
BAND = VERDADERO
Sino
I=I+1
Finsi
Finmientras
Si BAND = FALSO entonces
Imprimir El elemento, X, no est en el arreglo
Finsi
Sino
Imprimir El arreglo A est vaco
Finsi

Fin
A
... Y ... ...

1 2 3 I N N+1 100

b. ARREGLOS ORDENADOS.
Considerando el arreglo ordenado A de 100 elementos, de la figura
siguiente. Los primeros N componentes del mismo tienen asignado un

Ing. Ruth Figueroa de Flores 13


Estructuras de Datos Algoritmos I

valor. En este caso se trabajar con un arreglo ordenado de manera


creciente, es decir:
A(1) <= A(2) <= A(3) <= ... <= A(N)

A
... ...

1 2 3 N N+1 100

Cuando se trabaja con arreglos ordenados debe evitarse alterar el orden


al insertar nuevos elementos o al modificar los existentes.

b.1. INSERCIN:
Para insertar un elemento X en un arreglo A que se encuentra
ordenado, debe verificar que existe espacio.
Luego tendr que encontrarse la posicin en la que debera estar
el nuevo valor para no alterar el orden del arreglo.
Una vez detectada la posicin, se proceder a recorrer todos los
elementos desde la misma hasta la N-sima posicin, un lugar a
la derecha.
Finalmente se asignar el valor X en la posicin encontrada. (Los
pasos del recorrido no se llevan a cabo cuando el valor a insertar
es mayor que el ltimo elemento del arreglo.)

Generalmente, cuando se quiere hacer una insercin debe


verificarse que el elemento no se encuentre en el arreglo. En la
mayora de los casos prcticos no interesa tener informacin
Ing. Ruth Figueroa de Flores 14
Estructuras de Datos Algoritmos I

duplicada, por lo tanto si el valor a insertar ya estuviera en el arreglo,


la operacin no se llevara a cabo.

Debemos sealar que tanto en los procesos de insercin y


eliminacin en arreglos ordenados es recomendable tener un
procedimiento que busque el elemento X en el arreglo ordenado.

Este procedimiento dar como resultado la posicin en la que se


encuentra el elemento X (en cuyo caso el elemento ya pertenece al
arreglo y por lo tanto no debemos insertarlo) o el negativo de la
posicin en la que debera estar.

EXPLICACIN DE LAS VARIABLES:

N : ENTERO // Almacena el nmero actual de elementos


del arreglo.
X : ENTERO // Representa el elemento que se va a
insertar (si no se encuentra en el arreglo).
A : ENTERO // Arreglo unidimensional. Su capacidad
mxima es de 100 elementos.

I : ENTERO // Se utiliza como variable de control del


ciclo. En el mdulo BUSCAR, detecta
adems la posicin donde se encuentra o
debera estar el elemento X. Es utilizado
tambin como ndice del arreglo.

POS : ENTERO // Almacena la posicin donde se encuentra o


debera estar el elemento X..

PSEUDOCDIGO:
Insertar_Ordenado
Var
Entero: N, X, I, POS

Ing. Ruth Figueroa de Flores 15


Estructuras de Datos Algoritmos I

Dim A(100) : Entero


Inicio
Si N < 100 entonces
// INICIO DEL MDULO BUSCAR
Leer X
I=1
Mientras ( I <= N ) and ( A(I) < X ) hacer
I=I+1
Finmientras
Si ( I > N ) OR ( A(I) > X ) entonces
POS = -1
Sino
POS = 1
Finsi
// FIN DEL MDULO BUSCAR
// INICIO DEL MDULO INSERTAR
Si POS > = entonces
Imprimir El elemento ya existe
Sino
N=N+1
POS = POS * (-1)
I=N
Repetir I desde N hasta (POS +1) hacer
A(I) = A(I - 1)
I=I-1
Finrepetir
A(POS) = X
Finsi
// FIN DEL MDULO INSERTAR
Sino
Imprimir No hay espacio en el arreglo para nuevas
inserciones
Finsi
Fin
A
... Y ... ...

Ing. Ruth Figueroa de Flores 16


Estructuras de Datos Algoritmos I

1 2 3 I N N+1 100

Insercin en arreglo ordenado.

b.2. ELIMINACIN:
Para eliminar un elemento X en un arreglo ordenado A debe
verificarse que el arreglo no est vaco. Si se cumple esta
condicin, entonces tendr que buscarse la posicin del
elemento a eliminar.
Si el resultado del mdulo BUSCAR es un valor positivo, quiere
decir que el elemento se encuentra en el arreglo y por lo tanto
puede ser eliminado.
En otro caso no se puede ejecutar la operacin.

EXPLICACIN DE LAS VARIABLES:

N : ENTERO // Almacena el nmero actual de elementos


del arreglo.
X : ENTERO // Representa el elemento que se va a
eliminar (si se encuentra en el arreglo).
A : ENTERO // Arreglo unidimensional. Su capacidad
mxima es de 100 elementos.
I : ENTERO // Se utiliza como variable de control del
ciclo. En el mdulo BUSCAR, Almacena
adems la posicin donde se encuentra o
debera estar el elemento X. Es utilizado
tambin como ndice del arreglo.
POS : ENTERO // Almacena la posicin donde se encuentra
o debera estar el elemento X..

PSEUDOCDIGO:
Eliminar_Ordenado
Var
Ing. Ruth Figueroa de Flores 17
Estructuras de Datos Algoritmos I

Entero: N, X, I, POS
Dim A(100) : Entero
Inicio
Si N > 0 entonces

// INICIO DEL MDULO BUSCAR


Leer X
I=1
Mientras ( I <= N ) and ( A(I) < X ) hacer
I=I+1
Finmientras
Si ( I > N ) OR ( A(I) > X ) entonces
POS = -1
Sino
POS = 1
Finsi
// FIN DEL MDULO BUSCAR

// INICIO DEL MDULO ELIMINAR


Si POS < 0 entonces
Imprimir El elemento no existe
Sino
N=N-1
I = POS
Repetir I desde POS hasta N hacer
A(I) = A(I + 1)
I=I+1
Finrepetir
Finsi
// FIN DEL MDULO INSERTAR

Sino
Imprimir El arreglo esta vaco
Finsi
Fin

A
... ...

Ing. Ruth Figueroa de Flores 18


Estructuras de Datos Algoritmos I

1 2 3 N-1 N 100

Eliminacin en arreglo ordenado.

b.3. MODIFICACIN:
Se procede de manera similar a la eliminacin de un elemento en
un arreglo ordenado. La variante se presenta en que al modificar el
valor X por un valor Y, debe verificarse que el orden, entonces
debera reordenarse al arreglo, o bien eliminar primero el elemento
a modificar e insertar posteriormente el elemento nuevo.

EXPLICACIN DE LAS VARIABLES:

N : ENTERO // Almacena el nmero actual de elementos del


arreglo.
X : ENTERO // Representa el valor que se va a modificar.
A : ENTERO // Arreglo unidimensional. Su capacidad mxima es
de 100 elementos.

I : ENTERO // Se utiliza como variable de control del ciclo. En el


mdulo BUSCAR, Almacena adems la posicin
donde se encuentra o debera estar el elemento X.
Es utilizado tambin como ndice del arreglo.

POS : ENTERO // Almacena la posicin donde se encuentra o debera


estar el elemento X..
BAND : BOOLEANA // Se inicializa en falso. Cambia su valor a verdadero
si se encuentra el elemento a modificar en el
arreglo, en cuyo caso se interrumpe el ciclo.

Y : ENTERO // Representa al elemento que se introduce y modifica


al elemento X.

PSEUDOCDIGO:
Modificar_Ordebado
Var
Entero: N, X, I, POS, Y

Ing. Ruth Figueroa de Flores 19


Estructuras de Datos Algoritmos I

Booleana : BAND
Dim A(100) : Entero
Inicio
Si N >= 1 entonces
Leer X
I=1
BAND = FALSO
Mientras ( I <= N ) and ( BAND = FALSO ) hacer
Si A(I) = X entonces
Leer Y
A(I) = Y
BAND = VERDADERO
Sino
I=I+1
Finsi
Finmientras
Si BAND = FALSO entonces
Imprimir El elemento, X, no est en el arreglo
Finsi
// INICIO DEL MDULO ELIMINAR
Si POS < 0 entonces
Imprimir El elemento no existe
Sino
N=N-1
I = POS
Repetir I desde POS hasta N hacer
A(I) = A(I + 1)
I=I+1
Finrepetir
Finsi
// FIN DEL MDULO INSERTAR

Sino
Imprimir El arreglo esta vaco
Finsi
Fin

Ing. Ruth Figueroa de Flores 20

You might also like