Página principal | Lista de namespace | Jerarquía de la clase | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros

Referencia de la Clase Vector_Ordenable

Vector ordenable que almacena enteros Más...

Diagrama de herencias de Vector_Ordenable

Contenedor_Ordenable Lista de todos los miembros.

Tipos públicos

typedef int value_type
 Tipo de valor almacenado en el contenedor.

Métodos públicos

 Vector_Ordenable (unsigned N)
 Constructor que inserta "N" valores (aleatorios) en el contenedor.
virtual ~Vector_Ordenable ()
 Destructor.
virtual void Intercambie (int, int)
 Intercambia los valores de los elementos que están en las posiciones [i] <=> [j].
virtual bool Es_Menor (int, int) const
 Compara los elementos en las dos posiciones "i" && "j" del contenedor
  • Retorna "true" cuando el primero es menor que el segundo
  • Retorna "false" cuando el primero es mayor o igual que el segundo.

virtual void ImprimaSe () const
 Graba en "cout" todos los valores almacenados en el contendor
  • Los graba en el orden en el que se encuentran almacenados.

virtual const char * Nombre () const
 Nombre del contenedor.
virtual int Encuentra_pivote (int, int)
 devuelve 0 si el contenedor tiene claves idénticas de otra forma, devuelve el indice de la mayor de las do claves diferentes de mas a la izquierda.
virtual void Particion (int, int, int)
 divide al contenedor para que las claves menores que pivote estén a la izquierda y las claves mayores estén a la derecha
virtual void Mezclar (int, int, int)
 realiza una mezcla en dos direcciones dado que toma dos contenedores ordenados como entrada y los combina para producir un contenedor ordenado de salida.
virtual int Get_valor (int)
 devuelve el valor de la posición que ingresa como parámetro
virtual void * Get_direccion (int)
 devuelve el puntero de la posicion ingresada como parámetro
virtual int Get_posicion (void *)
 devuelve la posición dentro del contenedor de la direccion pasada como parametro se utiliza el puntero nulo para luego asinar tal puntero a cualquier otro puntero que apunte a un tipo baase arbitrario
unsigned Dimension () const
 Devuelve la cantidad de valores almacenados en el "Contenedor_Ordenable".

Atributos protegidos

int m_cantidad_de_elementos
 Cantidad de valores almacenados en el "Contenedor_Ordenable".

Atributos privados

value_typem_vec

Descripción detallada

Vector ordenable que almacena enteros


Documentación de los 'Tipos Definidos' miembros de la clase

typedef int Contenedor_Ordenable::value_type [inherited]
 

Tipo de valor almacenado en el contenedor.


Documentación del constructor y destructor

Vector_Ordenable::Vector_Ordenable unsigned  N  ) 
 

Constructor que inserta "N" valores (aleatorios) en el contenedor.

00418                                              : Contenedor_Ordenable(N) {
00419     m_vec = new Contenedor_Ordenable::value_type [ m_cantidad_de_elementos ];
00420     srand( time(0) );
00421 
00422     for (int i = 0; i < m_cantidad_de_elementos; ++i) {
00423         m_vec[i] = rand() % 100;
00424     }
00425 }

Vector_Ordenable::~Vector_Ordenable  )  [virtual]
 

Destructor.

00427                                     {
00428     if (m_vec != 0) {
00429         delete [] m_vec;
00430     }
00431 }


Documentación de las funciones miembro

void Vector_Ordenable::Intercambie int  ,
int 
[virtual]
 

Intercambia los valores de los elementos que están en las posiciones [i] <=> [j].

Implementa Contenedor_Ordenable.

00451                                                {
00452     value_type temp;
00453     temp   = m_vec[i];
00454     m_vec[i] = m_vec[j];
00455     m_vec[j] = temp;
00456 }

bool Vector_Ordenable::Es_Menor int  ,
int 
const [virtual]
 

Compara los elementos en las dos posiciones "i" && "j" del contenedor

  • Retorna "true" cuando el primero es menor que el segundo
  • Retorna "false" cuando el primero es mayor o igual que el segundo.

Precondición:
(i < Dimension()) && (j < Dimension())

Implementa Contenedor_Ordenable.

00447                                                   {
00448     return (m_vec[i] < m_vec[j]);
00449 }

void Vector_Ordenable::ImprimaSe  )  const [virtual]
 

Graba en "cout" todos los valores almacenados en el contendor

  • Los graba en el orden en el que se encuentran almacenados.

Implementa Contenedor_Ordenable.

00433                                        {
00434     value_type * p = m_vec;
00435     value_type * end = & m_vec[ m_cantidad_de_elementos ];
00436     cout << "[";
00437     while (p != end) {
00438         cout << *p;
00439         if (p+1 != end) { // ¿último valor del vector?
00440            cout << " ";
00441         }
00442         p++;
00443     }
00444     cout << "]" << endl;
00445 }

const char * Vector_Ordenable::Nombre  )  const [virtual]
 

Nombre del contenedor.

Implementa Contenedor_Ordenable.

00458                                            {
00459     return "Vector_Ordenable";
00460 }

int Vector_Ordenable::Encuentra_pivote int  ,
int 
[virtual]
 

devuelve 0 si el contenedor tiene claves idénticas de otra forma, devuelve el indice de la mayor de las do claves diferentes de mas a la izquierda.

Implementa Contenedor_Ordenable.

00462                                                             {
00463         return m_vec[((inicial+final)/2)-1];
00464 }

void Vector_Ordenable::Particion int  ,
int  ,
int 
[virtual]
 

divide al contenedor para que las claves menores que pivote estén a la izquierda y las claves mayores estén a la derecha

Implementa Contenedor_Ordenable.

00466                                                                    {
00467         
00468         int z=primero;
00469         int d=ultimo;
00470         
00471         while(z<d)
00472         {
00473                 while (m_vec[z-1] < pivote)
00474                         ++z;
00475 
00476                 while (m_vec[d-1] > pivote)
00477                         --d;
00478 
00479                 if(primero<=ultimo)
00480                 {
00481                         this->Intercambie(z-1,d-1);
00482                         ++z;
00483                         --d;
00484                 }
00485 
00486         }
00487         if (primero < d)
00488                 Particion(primero,d,Encuentra_pivote(primero,d));
00489 
00490         if (z < ultimo)
00491                 Particion(z,ultimo,Encuentra_pivote(z,ultimo)); 
00492 }

void Vector_Ordenable::Mezclar int  ,
int  ,
int 
[virtual]
 

realiza una mezcla en dos direcciones dado que toma dos contenedores ordenados como entrada y los combina para producir un contenedor ordenado de salida.

Implementa Contenedor_Ordenable.

00494                                                                   {
00495         vector<value_type> m_temp;
00496         m_temp.reserve(derecha);
00497         int k=0;
00498         int i=izquierda;
00499         int j=centro+1;
00500         while ((i < (centro+1)) && ( j < derecha))
00501         {       
00502                 if (m_vec[i-1] < m_vec[j-1]){
00503                         m_temp[k] = m_vec[i-1];
00504                         ++i;
00505                 }else{
00506                         m_temp[k] = m_vec[j-1];
00507                         ++j;
00508                 }
00509                 ++k;
00510         };
00511 
00512         while (i < centro)
00513         {
00514                 m_temp[k] = m_vec[i-1];
00515                 ++i;
00516                 ++k;
00517         }
00518 
00519         while (j < derecha)
00520         {
00521                 m_temp[k] = m_vec[j-1];
00522                 ++j;
00523                 ++k;
00524         }
00525         
00526         for (k=0; k < derecha; ++k){
00527                 m_vec[k]= m_temp[k];
00528         }
00529 
00530 }

int Vector_Ordenable::Get_valor int   )  [virtual]
 

devuelve el valor de la posición que ingresa como parámetro

Implementa Contenedor_Ordenable.

00532                                         {
00533         return m_vec[valor-1];
00534 }

void * Vector_Ordenable::Get_direccion int   )  [virtual]
 

devuelve el puntero de la posicion ingresada como parámetro

Implementa Contenedor_Ordenable.

00536                                               {
00537         value_type * pos=0;
00538         return pos;
00539 }

int Vector_Ordenable::Get_posicion void *   )  [virtual]
 

devuelve la posición dentro del contenedor de la direccion pasada como parametro se utiliza el puntero nulo para luego asinar tal puntero a cualquier otro puntero que apunte a un tipo baase arbitrario

Implementa Contenedor_Ordenable.

00541                                                {
00542         return 1;
00543 }

unsigned Contenedor_Ordenable::Dimension  )  const [inline, inherited]
 

Devuelve la cantidad de valores almacenados en el "Contenedor_Ordenable".

00048 { return m_cantidad_de_elementos; }


Documentación de los datos miembro

value_type* Vector_Ordenable::m_vec [private]
 

int Contenedor_Ordenable::m_cantidad_de_elementos [protected, inherited]
 

Cantidad de valores almacenados en el "Contenedor_Ordenable".


La documentación para esta clase fué generada a partir del siguiente archivo:
Generado el Fri Nov 11 22:48:42 2005 para A21551 y 791572 Tarea Programada #7 por  doxygen 1.4.4
Hosted by www.Geocities.ws

1