Red de conocimiento informático - Conocimiento informático - Registro para el examen de programación Weihai

Registro para el examen de programación Weihai

tree.h

# 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

#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.