Dev - C++ - Duda ordenar lista simple c++

   
Vista:

Duda ordenar lista simple c++

Publicado por Matias (5 intervenciones) el 21/02/2015 02:47:39
Hola qué tal?
Tengo la lista fixture, el puntero1 que apunta al primer elemento y punterofinal que apunta al último (no lo uso).
Las estructuras en las listas son estas, ignoren el typedef:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
typedef struct{
    char equipo[31];
    int resultado;
    int paramA;
    int paramB;
    int puntos;
}tipopartido;
typedef struct{ // local y visitante tienen almacenado un array tipopartido por fecha
    tipopartido local[99];
    tipopartido visitante[99];
    }partidosfixture;
 
typedef struct{ //nodo de información de la lista
    int fecha;
    partidosfixture tabla[99];
    bool fuesimulado;
}info;

La función que uso para ordenar es esta:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
void OrdenarLista(int fechastotales, tipofixture *&puntero1, tipofixture *&fixture){
 
 
 
    fixture=puntero1;
    tipofixture *auxiliar= fixture;
    cout<<auxiliar->infofixture.fecha<<endl;
    cout<<fixture->infofixture.fecha<<endl;
    cout<<puntero1->infofixture.fecha<<endl;
    system("pause");
 
    int aux=0;
    int g=0;
 
   auxiliar=auxiliar->siguiente;
    cout<<auxiliar->infofixture.fecha<<endl;
 
    fixture=fixture->siguiente;
    cout<<fixture->infofixture.fecha<<endl;
 
    while(fixture!=NULL){
 
    while(auxiliar!=NULL){
 
 
 
            cout<<"entra"<<endl;
            if(fixture->infofixture.fecha>auxiliar->infofixture.fecha){
                aux=fixture->infofixture.fecha;
                fixture->infofixture.fecha=auxiliar->infofixture.fecha;
                auxiliar->infofixture.fecha=aux;
                 auxiliar=auxiliar->siguiente;
 
            } else auxiliar=auxiliar->siguiente;
            if(fixture!=NULL){cout<<fixture->infofixture.fecha<<endl;}
        }
        fixture=fixture->siguiente;
        auxiliar=puntero1;
    }
 
 
}

Sirve, no da error. Puse ese "entra" para ver cuantas veces entraba, pero entra solo 3.
Se pone en NULL rápidamente, no se porqué. La lista está llena y tiene 20 nodos, y el problema surge que cuando entra en el nodo siguiente, en fecha, está en 0 (y tiene valores del 1 al 20). Creo que declaré mal el puntero, o estoy asignando mal a "fixture" la dirección de memoria de puntero1. (puntero1 tiene los datos del primer nodo, ya verifiqué)
Alguna idea?
Dejo el trabajo completo en un zip, solo me interesa arreglar eso por ahora. (El cpp que uso es TP algoritmos matias...)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder