Registro para el examen de programación Weihai
# include ltstdio.h gt
# include ltmalloc.h gt
#Defina el nodo máximo 50
typedef estructura Nodo de bits
{
datos de caracteres;
BiTNode *lchild, *rchild
}BiTNode, *BiTree
BiTree crea BiTree();
void en orden transversal(BiTree T);
creatTree.cpp
#Contiene "tree.h"< / p>
BiTree CreateBiTree()
{
BiTree T;
char ch
scanf("c ", ampch );
if (ch=='# ')
{
T = NULL
return T;
}
Otros
{
t =(nodo de bits *)malloc(tamaño de(nodo de bits));
if (T==NULL)
{
Printf("¡Error en la creación del árbol!");
T = NULL
return T;
}
t->; datos = ch
t->; l niño = crear bitree();
t->;rchild = crear bitree();
devolver T;
}
}
InorderTraverse.cpp p >
#Contiene "tree.h"
Vacío en recorrido (árbol binario T)
{
Pila BiTree [MAX_NODE], p = T ;
int top=0, bool 1 = 1;
if (T==NULL)
printf("¡El árbol binario está vacío!\ n ") ;
Otro
{
Hacer
{
Y (p!=null)
{
pila[ top] = p;
p = p- lchild
}
if (arriba==0)
{
bool 1 = 0;
}else{
p = pila[arriba] ;
arriba-;
printf("c ", p- gt; datos
p = p- gt
<); p> }} mientras (bool1! =0);
}
}
main_fun.cpp
#Contiene "árbol.h"
int main()
{
BiTree T = crear BiTree();
en orden atravesar(T); 0;
}
traverse.cpp
#Contiene "árbol.h"
>Recorrido de reserva vacío (árbol binario T)
{
If (T!=null)
{
/*Visita el nodo raíz */
Recorrido de pedido anticipado (T- gt; l child);
printf ("c ", T- gt; datos
Prepedido); Traverse (T- gt; rchild);
}
}
Por ejemplo, entrada AB###
Salida BA< / p>
Entrada de primer orden y salida de orden intermedio
Puede modificar el modo transversal para cambiar los resultados de salida.