En rojo esta marcado el problema.<br>mi comentario en amarillo....<br>David<br><br><div class="gmail_quote">El 22 de octubre de 2009 11:51, John <span dir="ltr"><<a href="mailto:tanyin21@hotmail.com">tanyin21@hotmail.com</a>></span> escribió:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hola David, muchas gracias por la ayuda, todo esto es un trabajo que tengo<br>
que presentar en la universidad y el profesor quiere que se haga un<br>
constructor que reciba dos instancias de lista para concatenar los<br>
contenidos de las dos listas, ahora yo perfectamente pudiese hacer un método<br>
para ello y se que funcionaria, pero según el profesor tengo que hacerlo así<br>
como él lo especifica, yo ya tengo en mi mente el algoritmo para concatenar<br>
las listas pero lo que me impide a seguir es el error que me da.<br>
Con respecto al error, bueno yo uso el IDE Codeblocks, y bueno a como<br>
mostrare a continuación en el siguiente código no me da error al compilarlo,<br>
lo que sucede es que la aplicación se queda ahí y no hace nada.<br>
<br>
#include <iostream><br>
using namespace std;<br>
<br>
class nodo {<br>
   public:<br>
    nodo(int v, nodo *sig = NULL)<br>
    {<br>
       valor = v;<br>
       siguiente = sig;<br>
    }<br>
<br>
   private:<br>
    int valor;<br>
    nodo *siguiente;<br>
<br>
   friend class lista;<br>
};<br>
<br>
typedef nodo *pnodo;<br>
<br>
<br>
class lista {<br>
   public:<br>
    lista() { primero = actual = NULL; }<br>
 <span style="background-color: rgb(255, 0, 0);">   lista(lista luno, lista ldos){}</span><br style="background-color: rgb(255, 255, 0);"></blockquote><div><span style="background-color: rgb(255, 255, 0);">estas definiendo  a la funcion como vacia....</span><br style="background-color: rgb(255, 255, 0);">

<span style="background-color: rgb(255, 255, 0);">no hace nada... por eso no hace nada....</span><br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">


    ~lista();<br>
<br>
    void Insertar(int v);<br>
    void Borrar(int v);<br>
    bool ListaVacia() { return primero == NULL; }<br>
    int encuentraMenor();<br>
    int encuentraMayor();<br>
    void Mostrar();<br>
    void Siguiente();<br>
    void Primero();<br>
    void Ultimo();<br>
    bool Actual() { return actual != NULL; }<br>
    int ValorActual() { return actual->valor; }<br>
<br>
   private:<br>
    pnodo primero;<br>
    pnodo actual;<br>
};<br>
<br>
lista::~lista()<br>
{<br>
   pnodo aux;<br>
<br>
   while(primero) {<br>
      aux = primero;<br>
      primero = primero->siguiente;<br>
      delete aux;<br>
   }<br>
   actual = NULL;<br>
}<br>
<br>
void lista::Insertar(int v)<br>
{<br>
   pnodo anterior;<br>
<br>
   // Si la lista está vacía<br>
   if(ListaVacia()) {<br>
      // Asignamos a lista un nievo nodo de valor v y<br>
      // cuyo siguiente elemento es la lista actual<br>
      primero = new nodo(v, primero);<br>
   }<br>
   else {<br>
      // Buscar el nodo de valor menor a v<br>
      anterior = primero;<br>
      // Avanzamos hasta el último elemento o hasta que el siguiente tenga<br>
      // un valor mayor que v<br>
      while(anterior->siguiente)<br>
         anterior = anterior->siguiente;<br>
      // Creamos un nuevo nodo después del nodo anterior, y cuyo siguiente<br>
      // es el siguiente del anterior<br>
      anterior->siguiente = new nodo(v, anterior->siguiente);<br>
   }<br>
}<br>
<br>
int lista::encuentraMenor(){<br>
    nodo *aux;<br>
    int menor,contador=0,posicion=0;<br>
    aux = primero;<br>
    menor = -1;<br>
    if(ListaVacia()){<br>
        return menor;<br>
        } else {<br>
            menor = aux->valor;<br>
            while(aux){<br>
                if(menor<=aux->valor){<br>
                    aux=aux->siguiente;<br>
                    contador++;<br>
                    } else {<br>
                        menor=aux->valor;<br>
                        posicion=contador;<br>
                        contador++;<br>
                        aux=aux->siguiente;<br>
                        }<br>
                }<br>
        }<br>
    return posicion;<br>
    }<br>
<br>
int lista::encuentraMayor(){<br>
    nodo *aux;<br>
    int mayor,contador=0,posicion=0;;<br>
    aux=primero;<br>
    mayor= -1;<br>
    if(ListaVacia()){<br>
        return mayor;<br>
        } else {<br>
            mayor=aux->valor;<br>
            while(aux){<br>
                if(mayor>=aux->valor){<br>
                    aux=aux->siguiente;<br>
                    contador++;<br>
                    } else {<br>
                        mayor=aux->valor;<br>
                        posicion=contador;<br>
                        contador++;<br>
                        aux=aux->siguiente;<br>
                        }<br>
                }<br>
            }<br>
    return posicion;<br>
    }<br>
<br>
void lista::Borrar(int v)<br>
{<br>
   pnodo anterior, nodo;<br>
<br>
   nodo = primero;<br>
   anterior = NULL;<br>
   while(nodo && nodo->valor < v) {<br>
      anterior = nodo;<br>
      nodo = nodo->siguiente;<br>
   }<br>
   if(!nodo || nodo->valor != v) return;<br>
   else { // Borrar el nodo<br>
      if(!anterior) // Primer elemento<br>
         primero = nodo->siguiente;<br>
      else  // un elemento cualquiera<br>
         anterior->siguiente = nodo->siguiente;<br>
      delete nodo;<br>
   }<br>
}<br>
<br>
void lista::Mostrar()<br>
{<br>
   nodo *aux;<br>
<br>
   aux = primero;<br>
   while(aux) {<br>
      cout << aux->valor << "-> ";<br>
      aux = aux->siguiente;<br>
   }<br>
   cout << endl;<br>
}<br>
<br>
void lista::Siguiente()<br>
{<br>
   if(actual) actual = actual->siguiente;<br>
}<br>
<br>
void lista::Primero()<br>
{<br>
   actual = primero;<br>
}<br>
<br>
void lista::Ultimo()<br>
{<br>
   actual = primero;<br>
   if(!ListaVacia())<br>
      while(actual->siguiente) Siguiente();<br>
}<br>
<br>
int main()<br>
{<br>
    lista Lista;<br>
    lista Listados;<br>
<br>
<br>
    Lista.Insertar(209);<br>
    Lista.Insertar(19);<br>
    Lista.Insertar(30);<br>
<br>
    Listados.Insertar(100);<br>
    Listados.Insertar(178);<br>
    Listados.Insertar(10);<br>
    Listados.Insertar(77);<br>
<br>
    lista lis(Lista,Listados);<br>
<br>
<br>
    cout <<"Esta es la posicion del dato menor:<br>
"<<Lista.encuentraMenor()<<endl;<br>
    cout <<"Este es la posicion del dato mayor:<br>
"<<Lista.encuentraMayor()<<endl;<br>
<br>
<br>
<br>
<br>
}<br>
<font color="#888888"><br>
<br>
John<br>
</font><br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div><br><br clear="all"><br>-- <br> (\__/) <br>(='.'=)This is Bunny. Copy and paste bunny into your <br>

(")_(")signature to help him gain world domination. <br><br>