Autor
|
Tema: Problema en arboles binarios de busqueda (Leído 1,767 veces)
|
Josh13
Desconectado
Mensajes: 3
|
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
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Arboles binarios
Programación C/C++
|
josue_tux
|
3
|
10,319
|
9 Mayo 2010, 20:18 pm
por leogtz
|
|
|
[?] Arbb (arboles binarios de busqueda) C++...???
Programación C/C++
|
Liraa
|
3
|
3,898
|
27 Julio 2010, 22:59 pm
por ghastlyX
|
|
|
Arboles binarios
Java
|
soser
|
0
|
2,010
|
27 Octubre 2010, 08:45 am
por soser
|
|
|
Arboles Binarios c++
Programación C/C++
|
maferavagar
|
3
|
2,771
|
8 Julio 2015, 11:20 am
por ivancea96
|
|
|
Busqueda por posicion en arboles binarios c++
Programación C/C++
|
Abril7
|
1
|
1,727
|
12 Mayo 2017, 15:46 pm
por CalgaryCorpus
|
|