Dev - C++ - Lista doblemente ligada en una simplemente ligada.

 
Vista:
sin imagen de perfil

Lista doblemente ligada en una simplemente ligada.

Publicado por Carlos (1 intervención) el 15/10/2016 06:59:18
Hola que tal, soy del 2do semestre de ingeniería en computación tengo un proyecto y tengo una duda para poder optimizar mi código.
La problemática es la siguiente tengo que anidar una lista doblemente ligada en una simplemente ligada osea que cada nodo de la simplemente ligada tendrá una parte lista que abrirá paso a manipular la segunda lista pero todo esto tiene que ser con paso de referencia, bueno lo de anidar la lista ya lo tengo.
1
2
3
4
5
6
7
class nodo
{
public:
    dato dato;
    nodo *sig;
    Lista2 listaA;
};
A partir de ahí hice un método de ejemplo:
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
void menu::menus(Lista1 &L)
{
 
    int datito;
    cout<<"Ingrese el nodo donde decea insertar:";
    cin>>datito;
    dat.pedirDato(datito);
    if(L.Buscar(dat) != NULL)
    {
        cout<<"Ingrese el dato del nodo:";
        cin>>datito;
        dat1.pedirDato1(datito);
        if(L.Buscar(dat)->listaA.h == NULL)
        {
            L.Buscar(dat)->listaA.InsertarFinalD(dat1);
        }
        L.Buscar(dat)->listaA.InsertarFinalD(dat1);
        cout<<"Mostrar datos.."<<endl;
        cout<<"Ingrese nodo donde decea mostrar todo:"<<endl;
        cin>>datito;
        dat.pedirDato(datito);
        L.Buscar(dat)->listaA.MostrarTodoD();
    }
    else
    {
        cout<<"NO EXISTE ESE DATO."<<endl;
    }
}
Lo que pasa que solo encontré una forma y buscando muchas veces y no se si sea lo mas optimo quisiera saber si hay alguna forma de optimizar esta lista o es lo único que se puede hacer, cabe resaltar que el requisito del programa dentro de las clases lista solo deben de existir los métodos básicos ninguno que modificado.
Les agradezco su ayuda.
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