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

Dinmicas

Lineales
rboles
No
lineales

Ing. Ruth Figueroa de Flores

Grafos

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

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)

$150

$500

$600

$1000

Primer
Segundo
Tercer
Cuarta
Elemento Elemento Elemento Elemento

Sueldo(10)

........................................

$2000
Dcimo
elemento

PRESENTACIN:

Ing. Ruth Figueroa de Flores

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

Sueldo(1)

$150

Sueldo(2)

$500

Sueldo(3)

$1000

........

$1500

........

Sueldo(4)

Sueldo(10)

$2000

ELEMENTOS

la siguiente manera.

ELEMENTOS
4

12

14

K(1)

K(2)

K(3)

K(4)

K(5)

K(6)

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

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

10

ndices
Diferentes operaciones con el vector sueldo considerando el
subndice de I = 2
Operaciones sobre
elementos
Asignacin
Lectura
Escritura

Operaciones sobre vector


completo
Recorrido
Bsqueda
Insercin
Eliminacin

INSTRUCCIN (ACCIN)
Imprimir sueldo( I )
Ing. Ruth Figueroa de Flores

EFECTO
Visualiza 520.7

(valor de sueldo( 2 ))
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)

Sueldo( I ) = Sueldo (11)

Instruccin errnea ya que I > 10 y esa


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
Leer sueldo( I )
Fin-desde

I=1
Mientras I <= 10 hacer
Leer Sueldo( I )
I=I+1
Fin-mientras

ESCRITURA DEL VECTOR SUELDO.


Desde I = 1 hasta 10 hacer
Imprimir sueldo( I )
Fin-desde

I=1
Mientras I <= 10 hacer
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

Estructuras de Datos

2.

Asignacin.

3.

Actualizacin:

Algoritmos I

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 )
Fin_desde

Repetir I desde 1 hasta N hacer


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

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
Fin_desde

Repetir I desde 1 hasta N hacer


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

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
...

...

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:
: ENTERO

//

Almacena el nmero actual de elementos


del arreglo.

Y : ENTERO

//

Representa el valor que se va a insertar.

A : ENTERO

//

Arreglo unidimensional. Su
mxima es de 100 elementos.

capacidad

PSEUDOCDIGO:
Insertar_Desordenado
Var
Entero: N, Y
Ing. Ruth Figueroa de Flores

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
...

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:
: ENTERO

// Almacena el nmero actual de elementos del

X
A

: ENTERO
: ENTERO

//
//

: ENTERO

//

: ENTERO

//

BAND : BOOLEANA //

arreglo.
Representa el valor que se va a eliminar.
Arreglo unidimensional. Su capacidad mxima es
de 100 elementos.
Se utiliza como variable de control del ciclo
externo y como ndice del arreglo.
Se utiliza como variable de control del ciclo interno
y como ndice del arreglo A.
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
...

...

N-1

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:

: ENTERO

// Almacena el nmero actual de elementos


del arreglo.

: ENTERO

// Representa el valor que se va a modificar.

: ENTERO

// Arreglo unidimensional. Su
mxima es de 100 elementos.

: ENTERO

// Se utiliza como variable de control del ciclo


y como ndice del arreglo.

: ENTERO

// Se utiliza como variable de control del ciclo


interno y como ndice del arreglo A.

capacidad

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
...

...

...

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
...

...

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
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.

: ENTERO

// Representa el elemento que se va a


insertar (si no se encuentra en el arreglo).

: ENTERO

// Arreglo unidimensional. Su
mxima es de 100 elementos.

: 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..

capacidad

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
...
Ing. Ruth Figueroa de Flores

...

...
16

Estructuras de Datos

Algoritmos I

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

: ENTERO

: ENTERO

// Arreglo unidimensional. Su capacidad


mxima es de 100 elementos.

: 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.
// Almacena la posicin donde se encuentra
o debera estar el elemento X..

POS : ENTERO

// Almacena el nmero actual de elementos


del arreglo.
// Representa el elemento que se va a
eliminar (si se encuentra en el arreglo).

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

N-1

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:

: ENTERO

// Almacena el nmero actual de elementos del


arreglo.

: ENTERO

// Representa el valor que se va a modificar.

: ENTERO

// Arreglo unidimensional. Su capacidad mxima es


de 100 elementos.

: 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.

: 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