Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como ordenar una listas ligada simple POO c++

Estas en el tema de Como ordenar una listas ligada simple POO c++ en el foro de C/C++ en Foros del Web. Hola bueno mi problema es que tengo una lista ligada simple en c++ y orientado a objetos, en esta lista estoy guardando dentro de los ...
  #1 (permalink)  
Antiguo 15/04/2014, 10:47
 
Fecha de Ingreso: febrero-2014
Mensajes: 12
Antigüedad: 10 años, 2 meses
Puntos: 0
Como ordenar una listas ligada simple POO c++

Hola bueno mi problema es que tengo una lista ligada simple en c++ y orientado a objetos, en esta lista estoy guardando dentro de los nodos objetos de otra clase y mi duda es como ordenar esos nodos, ya se que no se pueden mover como un arreglo y que los métodos de ordenación trabajan por medio de arreglos.
Con el método que ordenaría seria con quicksort, y lo que tengo entendido es que primero creo un arreglo de tamaño de la cantidad de mis nodos poniendo un código como este:

Código C++:
Ver original
  1. template <class T>
  2. void lista<T>::ordena()
  3. {
  4.    int i=0;
  5.     nodo<T> *p;
  6.     p=primero;
  7.     while(p!=NULL)
  8.     {
  9.         p = p->getSiguiente();
  10.         i++;
  11.     }
Código para contar los nodos y después continuar con el ordenamiento...

después tengo que crear el arreglo de la cantidad de nodos, el problema empieza aquí ya que no se que tipo de arreglo debo crear y como meter los nodos dentro de, luego tendría que ordenar este arreglo con el quicksort y finalmente religar cada nodo y esto es lo que no se como hacer. Estoy trabajando con template.

Los objetos de la clase que estoy insertando en la lista tienen solo 2 atributos, nombre y dirección, entonces cuando quiera ordenar tendría que ordenar por nombre.

Agradecería mucho si me pudieran echar la mano.
  #2 (permalink)  
Antiguo 15/04/2014, 13:08
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Como ordenar una listas ligada simple POO c++

Parece mas facil usar insertionSort o mergeSort,
¿por que usas quicksort?

No digo que esté mal, solo que desde mi posicion comoda parece mas facil algunos de los 2 primeros, pero puedo estar equivocado.
__________________
Visita mi perfil en LinkedIn
  #3 (permalink)  
Antiguo 15/04/2014, 13:44
 
Fecha de Ingreso: febrero-2014
Mensajes: 12
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Como ordenar una listas ligada simple POO c++

Si puedo usar cualquier método de ordenamiento y pues se me facilita mas el quicksort aunque también el merge me parece bien yo pienso que eso es lo de menos a mi problema, lo que quiero saber es como meter los nodos al arreglo por medio de mas punteros y como religar los nodos, de todas formas muchas gracias por tu respuesta y por tomarte un momento para leer mi problema.

Por favor pido su ayuda para solucionar este problema.
  #4 (permalink)  
Antiguo 24/04/2014, 22:03
 
Fecha de Ingreso: abril-2014
Mensajes: 1
Antigüedad: 10 años
Puntos: 0
Mensaje Respuesta: Como ordenar una listas ligada simple POO c++

template <class T>
void lista<T>::ordena()
{
int i=0, a=0;
int arreglo[listasize];
nodo<T> *p;
p=primero;
while(p!=NULL)
{
arreglo[i]=p->dato;
p = p->getSiguiente();
i++;
}

quicksort(arreglo, 0, listasize);

p=primero;

while(p!=NULL)
{
p->dato=arreglo[a];
p = p->getSiguiente();
a++;
}

Etiquetas: listas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:33.