Dev - C++ - Ayuda en pokedex con arboles c++

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda en pokedex con arboles c++

Publicado por Felipe (1 intervención) el 11/07/2018 07:31:26
Primero mencionar que soy nuevo en el mundo de c++, estoy intentando hacer una pokedex con arboles mi problema es no logro que funcione lo poco que llevo y segundo es que no me queda claro si mejor trabajar con Char o con string, pues tal parece que el nodo no reconoce al string como un tipo y eso me jode de ahi para abajo pra resolver el resto de problemas y el char me parece un poco muy complicado :/

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <string.h>
#include <stdio.h>
//crear primer nodo"EGG" El arbol consiste en un tipo de pokemon y el nombre del pokemon
//parte desde EGG y de ahi para abajo, el nivel del pokemon se conoce por estar a la izquierda o derecha
// siendo izquiera menor nivel y derecha su evolucion o nivel 2
struct nodo{
  std::string pokemon;
  int tipo;
  nodo *der;
  nodo *izq;
};
 
nodo *pokedex = NULL;
 
 void *crear_pokedex(std::string poke, int tipo){
   nodo *nuevo_nodo = new nodo();
   nuevo_nodo->pokemon = poke;
   nuevo_nodo->tipo = tipo;
   return nuevo_nodo;
 }
 
 
 
void agregar_pokemon(nodo *&pokedex,std::string ante, std::string poke, int tipo){
 
  std::string egg = "egg";
  nodo nodo_izq = *pokedex->izq;
  nodo nodo_der = *pokedex->der;
  std::string pok_izq[] = nodo_izq ->pokemon;
  std::string pok_der[] = nodo_der->pokemon;
 
  if(pokedex == NULL){
    nodo *nuevo_nodo = crear_pokedex(poke, tipo);
    pokedex = nuevo_nodo;
  }
  else if(ante.compare(ante)==0){
    agregar_pokemon(pokedex->izq, ante, poke, tipo);
  }
 
  else if(poke_izq.compare(ante)==0){
      agregar_pokemon(pokedex->izq, ante, poke, tipo);
    }
  else if(poke_der.compare(ante)==0){
    agregar_pokemon(pokedex->der, ante, poke, tipo);
  }
  else if(pokedex->izq != NULL){
    agregar_pokemon(pokedex->izq, ante, poke, tipo);
  }
  else {
    agregar_pokemon(pokedex->der, ante, poke, tipo);
  }
}
 
 
 
 
 
int main() {
  char comando[10];
  char ante[50];
  char poke[50];
  int tipo;
  char add[]="add"
  nodo pokedex = crear_pokedex("egg",0);
 
  cout<<"Escriba un comando :"<<endl;
  gets(comando);
  if (strcmp(comando,add)){
    cout<<"Escriba en orden: \nantecesor, pokemon, tipo : ";
    gets(ante);
    gets(poke);
    cin>>tipo>>endl;
    agregar_pokemon(*&pokedex, ante, poke, tipo);
  }
 
  return 0;
}
//el codigo esta muy movido y perdon si esta confuso
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