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>