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 del Archivo HerenciaOrdenada.cpp

Ejemplo de uso de funciones virtuales usando algoritmos de ordenamiento. Más...

#include <cstdlib>
#include <ctime>
#include <iostream>
#include <vector>
#include <assert.h>

Namespaces

namespace  std

Clases

class  Contenedor_Ordenable
 Clase abstracta cuyos hijos son contenedores que pueden ser ordenados
  • Tanto la "Lista_Ordenable" como el "Vector_Ordenable" son sus clases derivadas.
Más...
class  Lista_Ordenable
 Lista ordenable simple, compuesta de nodos, que almacena números enteros
  • Este "Contenedor_Ordenable" es una lista de enteros de tamaño "Contenedor_Ordenable::_cantidad_de_elementos".
Más...
class  Lista_Ordenable::Nodo
 Nodos de la "Lista_Ordenable". Más...
class  Vector_Ordenable
 Vector ordenable que almacena enteros
  • Este "Contenedor_Ordenable" es un vector de enteros de tamaño "Contenedor_Ordenable::_cantidad_de_elementos".
Más...
class  Algoritmo_Ordenador
 Clase abstracta que se usa para derivar de ella los algoritmos que sirven para ordenar instancias de "Contenedor_Ordenable"
  • No contiene campo alguno; sirve como "funtor" polimórfico.
Más...
class  Ordenador_Burbuja
 Clase derivada de "Algoritmo_Ordenador" que implementa el método de ordenamiento por "Burbuja". Más...
class  Ordenador_Burbuja_Optimizada
 Clase derivada de "Algoritmo_Ordenador" que implementa el método de ordenamiento por "Burbuja Optimizada". Más...
class  Ordenador_Seleccion
 Clase derivada de "Algoritmo_Ordenador" que implementa el método de ordenamiento por "Selección". Más...
class  Ordenador_QuickSort
class  Ordenador_MergeSort

Definiciones

#define INCLUDE_iostream

Funciones

bool Esta_Ordenado (const Contenedor_Ordenable &C)
 Retorna "true" cuando el contenedor "C" está ordenado no decrecientemente.
int main ()
 Rutina principal que elije, en cada iteración de su ciclo principal, un contenedor para almacenar valores (lista vs vector), y un algoritmo de ordenamiento (Burbuja vs Burbuja_Optimizada vs Seleccion).


Descripción detallada

Ejemplo de uso de funciones virtuales usando algoritmos de ordenamiento.

Autor:
Adolfo Di Mare <[email protected]>

Alejandro Di Mare <[email protected]>

Miguel Hidalgo S. 791572

Karol Cordero B. A21551

Fecha:
2005

Documentación de las definiciones

#define INCLUDE_iostream
 


Documentación de las funciones

bool Esta_Ordenado const Contenedor_Ordenable C  ) 
 

Retorna "true" cuando el contenedor "C" está ordenado no decrecientemente.

00700                                                      {
00701     unsigned i;
00702     for (i = 0; i < C.Dimension()-1; ++i) {
00703         if ( C.Es_Menor(i+1,i) ) {
00704             return false;
00705         }
00706     }
00707     return true;
00708 }

int main  ) 
 

Rutina principal que elije, en cada iteración de su ciclo principal, un contenedor para almacenar valores (lista vs vector), y un algoritmo de ordenamiento (Burbuja vs Burbuja_Optimizada vs Seleccion).

SE MODIFICO A VALOR 4 YA QUE EL MERGE SORT TIENE UN LOOP

00715            {
00716     Algoritmo_Ordenador  * pOrdenador;
00717     Contenedor_Ordenable * pContenedor;
00718     srand( time(0) );
00719     cout << endl << endl << endl;
00720     for (int i = 0; i < 5; ++i) {         // Algoritmo_Ordenador
00721         for (int j = 0; j < 2; ++j) {     // Contenedor_Ordenable
00722 
00723             cout << endl;
00724             cout << "======================";
00725             cout << "======================";
00726             cout << "======================" << endl;
00727 
00728             // Selecciona el algoritmo de ordenamiento
00729             switch ( i ) {
00730                 case 0: pOrdenador = new Ordenador_Burbuja();            break;
00731                 case 1: pOrdenador = new Ordenador_Burbuja_Optimizada(); break;
00732                 case 2: pOrdenador = new Ordenador_Seleccion();          break;
00733                                 case 3: pOrdenador = new Ordenador_QuickSort();          break;
00734                                 case 4: pOrdenador = new Ordenador_MergeSort();          break;
00735             }
00736 
00737             // Selecciona "Lista_Ordenable" o "Vector_Ordenable" como contenedor
00738             switch ( j ) {
00739                 case 0: pContenedor = new Vector_Ordenable(20); break;
00740                 case 1: pContenedor = new Lista_Ordenable(20); break;
00741             }
00742 
00743             cout << "<<< " << 2*i+j+1 << " >>> => ";
00744             cout << pContenedor->Nombre() << " <===> ";
00745             cout << pOrdenador->Nombre() << endl;
00746             // Se imprime la lista desordenada generada al azar
00747             cout << endl << "[Sin orden]: ";
00748             pContenedor->ImprimaSe();
00749                         
00750                         if (i != 4)
00752                                 pOrdenador->Ordene( *pContenedor );
00753 
00754             cout << endl << "[Ordenados]: ";
00755             pContenedor->ImprimaSe();
00756 /*
00757             if (! Esta_Ordenado( *pContenedor ) ) {
00758                 cout << endl;
00759                 cout << "ERRROR: El contenedor " << pContenedor->Nombre() << " NO está ordenado" << endl;
00760                 assert( "ERRROR: El contenedor NO está ordenado" && false );
00761             }
00762 */
00763             // Destruye "pOrdenador" && "pContenedor"
00764             delete pOrdenador;
00765             delete pContenedor;
00766         }
00767     }
00768     return 0;
00769 }


Generado el Fri Nov 11 22:48:41 2005 para A21551 y 791572 Tarea Programada #7 por  doxygen 1.4.4
Hosted by www.Geocities.ws

1