You are on page 1of 15

Jos Vargas

Laboratorio de Estructuras de Datos A

En programacin una matriz o vector es una zona de almacenamiento continuo, que


contiene una serie de elementos del mismo tipo.
Desde el punto de vista lgico una matriz se puede ver como un conjunto de
elementos en fila, o filas y columnas si tuviesen dos dimensiones.

Cuando se almacena un vector de n dimensiones en memoria RAM, dicho vector se


almacena linealizado.
Bsicamente, es una linealizacin de una matriz hacia un mismo vector, calculando,
en base a las combinaciones de las posiciones de la matriz, un nuevo valor que nos
da la posicin en el vector linealizado.

Teniendo una matriz de enteros: [i,j] = [fila, columna]

[0,0] = 1

[0,1] = 4

[0,2] = 3

[0,3] = 5

[1,0] = 5

[1,1] = 7

[1,2] = 6

[1,3] = 9

[2,0] = 8

[2,1] = 1

[2,2] = 9

[2,3] = 2

Para linealizar los valores, existen dos opciones. Linealizarlos por filas

consecutivas o columnas consecutivas.

Para linealizarlo la formula es: = +

[0] = 1

[0,0] = 1

[0,1] = 4

[0,2] = 3

[0,3] = 5

[1,0] = 5

[1,1] = 7

[1,2] = 6

[1,3] = 9

[2,0] = 8

[2,1] = 1

[2,2] = 9

[2,3] = 2

[1] = 4

[2] = 3

[3] = 5

[4] = 5

[5] = 7

[6] = 6

Ejemplo:
Posicin [2,1]: = + = 2 4 + 1 = 9
Posicin [1,3]: = + = 1 4 + 3 = 7

[7] = 9

[8] = 8

[9] = 1

[10] = 9

[11] = 2

[0] = 1
Para linealizarlo la formula es: = +

[0,0] = 1

[0,1] = 4

[0,2] = 3

[0,3] = 5

[1,0] = 5

[1,1] = 7

[1,2] = 6

[1,3] = 9

[2,0] = 8

[2,1] = 1

[2,2] = 9

[2,3] = 2

[1] = 5
[2] = 8
[3] = 4
[4] = 7
[5] = 1
[6] = 3

Ejemplo:
Posicin [2,1]: = + = 1 3 + 2 = 5
Posicin [1,3]: = + = 3 3 + 1 = 10

[7] = 6
[8] = 9

[9] = 5
[10] = 9
[11] = 2

Es aquella que esta compuesta por muchos elementos de valor null, de tal forma

que los que son distintos de null se encuentran muy dispersos en la matriz y sin
relacin entre si.

El qu tan dispersos estn depende de las circunstancias, en nuestro caso nos

preocupa el uso de memoria.

Debemos tratar de preservar los principios de economa:


Mnimo consumo de memoria
Mnimo uso de procesador
Tiempo mnimo en acceso a los datos
Tiempo mnimo en clculos

Este tipo de estructura se utiliza para representar matrices con memoria dinmica

de manera que cumpla con los principios de economa.

Los nodos de esta estructura, en el mayor de los casos, contienen cuatro

apuntadores:

Nodo anterior
Nodo posterior
Nodo superior
Nodo inferior

En algunas implementaciones se requiere tengan mas nodos, para representar

combinacin de estructuras de datos utilizando como base la matriz ortogonal.

Bsicamente la matriz

ortogonal es un conjunto de
listas doblemente ligadas
donde cada lista tiene una
cabeza ya se a en forma
vertical 0, 1 o 2 o en forma
horizontal 0, 1 o 2 y a su vez
estas cabezas tienen una
cabeza principal, en el caso de
la figura esta representada
como i.

Tomando como base el nodo i de la figura anterior vamos a

decir que todos los nodos que estn a la derecha del nodo i son
nodos columna, es decir representan las cabezas de columnas de
la matriz.

Y todos los nodos que estn hacia abajo del nodo i son nodos

fila, es decir representan las cabezas de filas de la matriz.

Para realizar el proceso de insercin, se siguen los siguientes pasos:


1. Se recorre los encabezados, que deben ser ordenados, para ver si existe el

encabezado necesario, si este no existe se crea.

2. Si el encabezado ya hubiera existido, quiere decir que ya hay elementos en esa

dimensin, entonces se inserta en esa lista el elemento nuevo.

3. Se recorre los encabezados de la siguiente dimensin, buscando el necesario, si

no existe se crea.

4. Si el encabezado de la siguiente dimensin ya hubiera existido, se asocia en la

lista el nuevo elemento.

Para realizar el proceso de eliminacin, se siguen los siguientes pasos:


1.

Se recorre los encabezados buscando el encabezado asociado al elemento a


eliminar, no importa si son columnas o filas. Cabe mencionar que si no se
encuentra el encabezado, el elemento a eliminar no existe.

2.

Al encontrar el encabezado, se recorre la lista asociada de elementos para


encontrar al que buscamos eliminar.

3.

Al encontrarlo, si no es el nico del encabezado, se realiza una eliminacin


parecida a la de una lista. Si es el nico se debe eliminar el/los encabezados
que hagan referencia a ese nodo como nico. Puede que el elemento sea el
nico en la dimensin fila, pero la columna tenga mas elementos o viceversa.