Creación y recorrido de árboles binarios (lenguaje C)
Hola, cartel~~~Olvidé el código fuente del carácter "ф". Tengo un algoritmo transversal que escribí aquí
#include typedef struct btnode { datos char; struct btnode *Lchild,*Rchild; } * bitreptr; void Create(bitreptr &p) { char n; p=nuevo btnode; cin>>n; if(n!='#') { p->data=n; Crear(p->Lchild); Crear(p->Rchild); } más p = NULL; } anular pedido anticipado(bitreptr &p) { if(p) { cout< preorden(p->Lchild); preorden(p->Rchild); } } pedido medio nulo(bitreptr &p) { if(p) p > { orden medio(p->Lniño); cout< orden medio(p - >Rchild); } } void postorder(bitreptr &p) { si ( p) { postorder(p->Lchild); postorder(p->Rchild); cout< < p->datos<<" "; } } cambio nulo(bitreptr &p) { bitreptr t,q; if(p) { t=p->Lchild; q = p->Rchild; p->Lchild=q; p->Rchild=t; cambio(p->Lchild); cambio(p->Rchild); } } void main() { p> char i; cout<<"Seleccione la función requerida ('A' genera la secuencia del árbol binario, 'B' genera la secuencia del árbol binario intercambiada)"<< endl; cin>>i; bitreptr p; cout<<"Datos de entrada:"; Crear(p ); switch(i) { caso 'A': { cout<<"Preámbulo:"; p > preorden(p); cout< cout<<"Midorder:"; midorder(p); p> cout< cout<<"Postorder:"; postorder(p); cout<< endl; }romper; caso 'B': { cambio(p); cout< <"Preorder del árbol binario de Exchange:"; preorder(p); cout< cout<<"Orden del árbol binario de Exchange:" ; midorder(p); cout< cout<<"Intercambiar orden del árbol binario:"; postorden(p); cout< }descanso; } } Al ingresar este algoritmo, se debe usar "#" para representar nodos vacíos, y [datos de prueba] "ABCффDEфGффFффф" se debe cambiar a "ABC##DE#G##F###". Además, mi algoritmo incluye el código "cambiar (bitreptr &p)" para intercambiar los subárboles izquierdo y derecho del árbol binario. Siempre que el cartel haga una ligera modificación, puede obtener el resultado perfecto que desea ~