Dev - C++ - funcion para mostrar los elementos primos de un arbol binario c++

 
Vista:

funcion para mostrar los elementos primos de un arbol binario c++

Publicado por Andres Dominguez (1 intervención) el 14/05/2020 08:46:47
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
 
typedef struct nodo{
     int nro;
 
 
     struct nodo *izq, *der;
}*ABB;
 
int numNodos = 0;
int numK = 0, k;
 
 
 
struct nodoCola{
    ABB ptr;
    struct nodoCola *sgte;
};
struct cola{
    struct nodoCola *delante;
    struct nodoCola *atras;
};
 
void inicializaCola(struct cola &q)
{
    q.delante = NULL;
    q.atras = NULL;
}
 
 
ABB crearNodo(int x)
{
     ABB nuevoNodo = new(struct nodo);
     nuevoNodo->nro = x;
     nuevoNodo->izq = NULL;
     nuevoNodo->der = NULL;
 
     return nuevoNodo;
}
 
 
void insertar(ABB &arbol, int x)
{
     if(arbol==NULL)
     {
           arbol = crearNodo(x);
           cout<<"\n\t  Insertado..!"<<endl<<endl;
     }
     else if(x < arbol->nro)
          insertar(arbol->izq, x);
     else if(x > arbol->nro)
          insertar(arbol->der, x);
}
 
 
void verArbol(ABB arbol, int n)
{
     if(arbol==NULL)
          return;
     verArbol(arbol->der, n+1);
 
     for(int i=0; i<n; i++)
         cout<<"   ";
 
     numNodos++;
     cout<< arbol->nro <<endl;
 
     verArbol(arbol->izq, n+1);
}
 
 
void elementoprimo(ABB arbol, int nro){
 
     int divisor = 1, divisores = 0;
 
     if(arbol==NULL)
          return;
 
     elementoprimo(arbol->der, nro+1);
 
     if(arbol->nro % divisor ){
     	divisores++;
     }
     if(arbol->nro <= divisor)
     if (divisores==2)
         divisor++;
 
     elementoprimo(arbol->izq, nro+1);
 
}
 
void menu()
{
     //system("cls");
     cout << "\n\t\t  ..[ ARBOL BINARIO DE BUSQUEDA ]..  \n\n";
     cout << "\t [1]  Insertar elemento                  \n";
     cout << "\t [2]  Mostrar arbol                      \n";
     cout << "\t [3]  elementos primos               \n";
      cout << "\t [5]  elementos primos               \n";
     cout << "\t [4] SALIR                              \n";
 
     cout << "\n\t Ingrese opcion : ";
}
 
 
int main()
{
    ABB arbol = NULL;
    int x;
    int op, op2;
     int divisor = 1, divisores = 0;
     int nro, c;
 
 
    do
    {
          menu();  cin>> op;
          cout << endl;
 
          switch(op)
          {
               case 1:
                    cout << " Ingrese valor : ";  cin>> x;
                    insertar( arbol, x);
                    break;
 
               case 2:
                    verArbol(arbol, 0);
                    break;
 
               case 3:
                    elementoprimo(arbol, nro);
                    cout <<" el valor es de  "<< nro << "  elementos primos";
                    break;
 
               case 4:
                    exit(0);
          }
 
          cout<<"\n\n\n";
 
    }while(op!=5);
 
}
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