
Dev - C++ - cambiar cin y cout a printf y scanf en c++.
Publicado por Sebastian (12 intervenciones) el 22/09/2021 01:53:37
Hola, tengo este codigo y funciona perfecto con cout y cin pero mi profesor dijo que tenia que ser cambiado por printf y scanf, por favor su colaboración con esto, ya que soy nuevo en el tema.
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
149
150
151
152
153
154
155
156
157
158
159
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
struct Nodo{
int dato;
Nodo *der;
Nodo *izq;
};
//Prototipos
void menu();
Nodo *crearNodo(int);
void insertarNodo(Nodo *&,int);
bool busqueda(Nodo *,int);
void preOrden(Nodo *);
void inOrden(Nodo *);
void posOrden(Nodo *);
Nodo *arbol = NULL;
int main(){
menu();
getch();
return 0;
}
//Funcion de menu
void menu(){
int dato, opcion;
do{
cout<<"\t.:MENU:."<<endl;
cout<<"1. Insertar un nuevo nodo"<<endl;
cout<<"2. Buscar un elemento en el arbol"<<endl;
cout<<"3. PreOrden"<<endl;
cout<<"4. InOrden"<<endl;
cout<<"5. PosOrden"<<endl;
cout<<"6. Salir"<<endl;
cout<<"Opcion: ";
cin>>opcion;
switch(opcion){
case 1: cout<<"\nDigite un numero: ";
cin>>dato;
insertarNodo(arbol,dato); //Insertamos un nuevo nodo
cout<<"\n";
system("pause");
break;
case 2: cout<<"\nDigite el elemento a buscar:\n\n";
cin>>dato;
if(busqueda(arbol,dato) == true){
cout<<"\nElemento "<<dato<<" a sido encontado en el arbol\n";
}
else{
cout<<"\nElemento no a sido encontado en el arbol\n";
}
cout<<"\n";
system("pause");
break;
case 3: cout<<"\nRecorrido en PreOrden: ";
preOrden(arbol);
cout<<"\n\n";
system("pause");
break;
case 4: cout<<"\nRecorrido en InOrden: ";
inOrden(arbol);
cout<<"\n\n";
system("pause");
break;
case 5: cout<<"\nRecorrido en PosOrden: ";
posOrden(arbol);
cout<<"\n\n";
system("pause");
break;
}
system("cls");
}while(opcion != 6);
}
//Fuincion para crear un nuevo nodo
Nodo *crearNodo(int n){
Nodo *nuevo_nodo = new Nodo();
nuevo_nodo->dato = n;
nuevo_nodo->der = NULL;
nuevo_nodo->izq = NULL;
return nuevo_nodo;
}
//Fuincion para insertar elementos en el arbol
void insertarNodo(Nodo *&arbol,int n){
if(arbol == NULL){ //Si el arbol esta vacio
Nodo *nuevo_nodo =crearNodo(n);
arbol = nuevo_nodo;
}
else{ //Si el arbol tiene un nodo o mas de un nodo
int valorRaiz = arbol->dato; //Obtenemos el valor de la raiz
if(n < valorRaiz){ //Si el elemento es menor a la raiz, insertamos en izq
insertarNodo(arbol->izq,n);
}
else{ //Si el elemento es mayor a la raiz, insertamos en izq
insertarNodo(arbol->der,n);
}
}
}
//Funcion ara buscar un elemento en el arbol
bool busqueda(Nodo *arbol,int n){
if(arbol == NULL){ //si el arbol esta vacio
return false;
}
else if(arbol->dato == n){ //Si el nodo es igual al elemento
return true;
}
else if(n < arbol->dato){
return busqueda(arbol->izq,n);
}
else{
return busqueda(arbol->der,n);
}
}
//Funcion para recorrido preOrden
void preOrden(Nodo *arbol){
if(arbol == NULL){ //Si el arbol esta vacion
return;
}
else{
cout<<arbol->dato<<" - ";
preOrden(arbol->izq);
preOrden(arbol->der);
}
}
//Funcion para recorrido InOrden
void inOrden(Nodo *arbol){
if(arbol == NULL){ //Si el arbol esta vacion
return;
}
else{
inOrden(arbol->izq);
cout<<arbol->dato<<" - ";
inOrden(arbol->der);
}
}
//Funcion para recorrido posOrden
void posOrden(Nodo *arbol){
if(arbol == NULL){ //Si el arbol esta vacion
return;
}
else{
posOrden(arbol->izq);
posOrden(arbol->der);
cout<<arbol->dato<<" - ";
}
}
Valora esta pregunta


0