Página principal   Lista alfabética   Lista de componentes   Lista de archivos   Miembros de las clases   Archivos de los miembros   Páginas relacionadas  

Referencia de la Clase Vector_Disperso

T.D.A. Vector_Disperso. Más...

#include <vector_disperso.h>

Lista de todos los miembros.

Métodos públicos

float get_default () const
 Valor por defecto.

void set_default (float f)
 Asignar valor por defecto.

float get (int i) const
 Valor en i.

void set (int i, float f)
 Asignar valor en i.

int num_elementos () const
 Número de posiciones.

void datos_posicion (int i, int &indice, float &valor) const
 Posición y valor i-ésimo.


Métodos privados

bool posicion_indice (int &pos, int i) const
 Localizador de una posición en datos.

void expandir ()
 Aumenta la memoria reservada para datos.

void contraer ()
 Disminuye la memoria reservada para datos.


Atributos privados

Elementodatos
int nelementos
int reservados
float valor_por_defecto


Descripción detallada

T.D.A. Vector_Disperso.

Una instancia v del tipo de datos abstracto Vector_Disperso sobre el tipo float es un array 1-dimensional con indices enteros positivos sin limitación de rango.

Este tipo de dato se diseña especialmente para los problemas en los que el vector almacena en la mayoría de sus posiciones un valor predeterminado d, mientras que modifica un pequeño conjunto de ellas. Lo podemos representar como

{(i[0],v[0]),(i[1],v[1]),...,(i[n-1],v[n-1]),(*,d)}

La eficiencia en espacio es O(n), donde n es el número de posiciones del vector que almacena un valor distinto de d

Autor:
Antonio Garrido
Fecha:
Enero-2001

Definición en la línea 35 del archivo vector_disperso.h.


Documentación de las funciones miembro

void Vector_Disperso::contraer   [private]
 

Disminuye la memoria reservada para datos.

Precondición:
nelementos<=reservados/2
Postcondición:
reservados vale la mitad y la matriz datos apunta a una zona de memoria con la mitad de capacidad.

Definición en la línea 46 del archivo vector_disperso.cpp.

References datos, nelementos, y reservados.

Referenciado por set().

void Vector_Disperso::datos_posicion int    i,
int &    indice,
float &    valor
const
 

Posición y valor i-ésimo.

Parámetros:
i  índice de la pareja de valores a consultar. 0<=i<num_elementos()
indice  parámetro de salida del índice de la pareja obtenida
valor  parámetro de salida del valor asociado al índice indice
Postcondición:
Esta función nos permite obtener todas las posiciones y valores asociados al vector disperso que almacenan un valor distinto al valor por defecto.

Definición en la línea 173 del archivo vector_disperso.cpp.

References datos, Vector_Disperso::Elemento::indice, nelementos, y Vector_Disperso::Elemento::valor.

void Vector_Disperso::expandir   [private]
 

Aumenta la memoria reservada para datos.

Postcondición:
Si el número de elementos es cero, hace datos una matriz de un sólo elemento. Si no, la hace de tamaño 2*nelementos

Definición en la línea 34 del archivo vector_disperso.cpp.

References datos, nelementos, y reservados.

Referenciado por set().

float Vector_Disperso::get int    i const
 

Valor en i.

Parámetros:
i  Posición del vector a la que se accede
Devuelve:
El valor almacenado en la posición i. Si no se ha almacenado ninguno anteriormente, se devolverá el valor por defecto.

Definición en la línea 126 del archivo vector_disperso.cpp.

References datos, posicion_indice(), Vector_Disperso::Elemento::valor, y valor_por_defecto.

float Vector_Disperso::get_default  
 

Valor por defecto.

Devuelve:
El valor por defecto de las posiciones no asignadas.

Definición en la línea 111 del archivo vector_disperso.cpp.

References valor_por_defecto.

int Vector_Disperso::num_elementos  
 

Número de posiciones.

Devuelve:
El número de posiciones del vector que no tienen el valor por defecto.

Definición en la línea 166 del archivo vector_disperso.cpp.

References nelementos.

bool Vector_Disperso::posicion_indice int &    pos,
int    i
const [private]
 

Localizador de una posición en datos.

Parámetros:
i  valor del indice a localizar en la matriz
Valores devueltos:
pos  La posición donde se encuentra el índice i (si está) o la posición donde debería insertarse si no está
Devuelve:
Si la posición i está en el vector
Nota:
La eficiencia es logarítmica (usa búsqueda binaria)

Definición en la línea 11 del archivo vector_disperso.cpp.

References datos, Vector_Disperso::Elemento::indice, y nelementos.

Referenciado por get(), y set().

void Vector_Disperso::set int    i,
float    f
 

Asignar valor en i.

Parámetros:
i  Posición del vector a la que se asigna un valor
f  Valor a asignar a la posición i

Definición en la línea 136 del archivo vector_disperso.cpp.

References contraer(), datos, expandir(), Vector_Disperso::Elemento::indice, nelementos, posicion_indice(), reservados, Vector_Disperso::Elemento::valor, y valor_por_defecto.

void Vector_Disperso::set_default float    f
 

Asignar valor por defecto.

Parámetros:
f  Nuevo valor por defecto en las posiciones no asignadas
Precondición:
El vector no puede tener ninguna posición asignada. Por ejemplo, después de la creación

Definición en la línea 118 del archivo vector_disperso.cpp.

References nelementos, y valor_por_defecto.


Documentación de los datos miembro

Elemento* Vector_Disperso::datos [private]
 

Matriz de posiciones usadas en el vector

Definición en la línea 70 del archivo vector_disperso.h.

Referenciado por contraer(), datos_posicion(), expandir(), get(), posicion_indice(), y set().

int Vector_Disperso::nelementos [private]
 

Número de elementos usados en la matriz datos

Definición en la línea 71 del archivo vector_disperso.h.

Referenciado por contraer(), datos_posicion(), expandir(), num_elementos(), posicion_indice(), set(), y set_default().

int Vector_Disperso::reservados [private]
 

Número de posiciones reservadas en datos

Definición en la línea 72 del archivo vector_disperso.h.

Referenciado por contraer(), expandir(), y set().

float Vector_Disperso::valor_por_defecto [private]
 

Valor en las posiciones fuera de datos

Definición en la línea 73 del archivo vector_disperso.h.

Referenciado por get(), get_default(), set(), y set_default().


La documentación para esta clase fué generada a partir de los siguientes archivos:
Programación en C++. Desarrollado por Antonio Garrido, © 2003