elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema en arboles binarios de busqueda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema en arboles binarios de busqueda  (Leído 1,570 veces)
Josh13

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema en arboles binarios de busqueda
« en: 18 Mayo 2018, 20:42 pm »

Tengo el mismo error en dos funciones, me sale "no match for operator ==" con cualquier signo en si también con >. He leído que es porque tengo que dar un valor al string, pero la verdad que no se que valor dar exactamente.

El ejercicio 1 dice así: Devuelve el objeto de tipo Pelicula cuyo título coincide con el string recibido. En caso de que no se encuentre el título en el catálogo, se devolverá una película vacía, sin datos.

Este es el primer código:

Pelicula buscar(pNodo nodo, string t){
   Pelicula p;
   if(nodo != NULL){
      if(nodo->clave == t)
         return p;
      else {
         if(nodo->clave > t)
            buscar(nodo->iz, t);
         else buscar(nodo->de, t);
      }
   }
   return p;
}

Pelicula Filmoteca::buscarPelicula (string t) {
   Pelicula p;
    buscar(raiz, t);
    return p;
}


Y el segundo código:
En este caso me da el mismo error pero en "nodo->info << endl"

void mostrar(pNodo &nodo){
   if(nodo != NULL){
      mostrar(nodo->iz);
      cout << " " << nodo->info << endl;
      mostrar(nodo->de);
   }
}

void Filmoteca::mostrarFilmoteca () {
      mostrar(raiz);
}


« Última modificación: 19 Mayo 2018, 09:44 am por Josh13 » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: Problema en arboles binarios de busqueda
« Respuesta #1 en: 21 Mayo 2018, 15:19 pm »

Tienes varios errores.

El primordial es la sintaxis: Debes poner las llaves y los finales de sentencia donde corresponden, sin omitir ninguno, no son opcionales...

Otro error (éste semántico)...  mirando por ejemplo la función Buscar... 'p' siempre es nulo, nunca se le asigna nada, incluso aunque se encuentre la clave buscada.
Del mismo estilo es que aunque (ésta) la función devuelva algo, luego 'nadie' está allí para recoger la 'pelota' que desde aquí se envía...
En la segunda función (mostrar) pasas el nodo por referencia, pero aquí (buscar) por valor, podría por ello parecer... pero no puede ser una omisión a causa de esto, ya que declaras la función como 'no vacante' (no es void) y explícitamente 'devuelves' p.

Otro medio error, menos importante es que en la llamada inicial no se verifica si la clave recibida es nula. Asi en 'BuscarPelicula', si comprueba ese parámetro, no s epierde tiempo luego en ser revisado más adelante, ni ejecuta más acciones innecesarias si ya desde el principio resulta innecesario. Imagina que vas a una ferretería a comprar un pegamento, el tipo no vende pegamento, pero se larga al almacen a buscar, para después de media decirte que 'aquí no vendemos pegamento', acaso no hubieras preferido que empezara por ahí???.

Corrige todo lo previo y probableente los cambios, ya te lo dejen más libre de errores...

Luego donde dices: "En este caso me da el mismo error pero en "nodo->info << endl"", sintácticamente es correcto, luego si existe un error será semántico. Como por ejemplo: ¿Qué tipo de datos aloja nodo.info? o uno más prosaico: qué crees que debe mostrarse si ese nodo es nulo y no existe pero aún así se insiste en acceder a uno de sus miembros?.

Nota que no es lo mismo un nodo vacío que un nodo nulo. Un nodo vacío, es un nodo creado, pero al que (todavía) no se le han introducido datos... luego permite acceder a sus miembros y mostrar lo que tenga (por ejemplo una cadena vacía), en cambio un nodo nulo, es un nodo inexistente al momento, no se ha alogado espacio en memoria para él.


« Última modificación: 21 Mayo 2018, 15:26 pm por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Arboles binarios
Programación C/C++
josue_tux 3 9,964 Último mensaje 9 Mayo 2010, 20:18 pm
por leogtz
[?] Arbb (arboles binarios de busqueda) C++...???
Programación C/C++
Liraa 3 3,660 Último mensaje 27 Julio 2010, 22:59 pm
por ghastlyX
Arboles binarios
Java
soser 0 1,881 Último mensaje 27 Octubre 2010, 08:45 am
por soser
Arboles Binarios c++
Programación C/C++
maferavagar 3 2,469 Último mensaje 8 Julio 2015, 11:20 am
por ivancea96
Busqueda por posicion en arboles binarios c++
Programación C/C++
Abril7 1 1,527 Último mensaje 12 Mayo 2017, 15:46 pm
por CalgaryCorpus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines