Red de conocimiento informático - Computadora portátil - 1. Escriba un programa para ingresar arbitrariamente el número de nodos y los valores de los nodos de un árbol binario, construya un árbol binario y use tres algoritmos transversales recursivos (orden previo, orden medio y orden posterior).

1. Escriba un programa para ingresar arbitrariamente el número de nodos y los valores de los nodos de un árbol binario, construya un árbol binario y use tres algoritmos transversales recursivos (orden previo, orden medio y orden posterior).

árbol.h

#include

#include

#define MAX_NODE 50

typedef estructura BiTNode

{

datos char;

BiTNode *lchild,*rchild;

}BiTNode ,*BiTree;

BiTree CreateBiTree();

void InorderTraverse( BiTree T);

creatTree.cpp

#include" tree.h"

BiTree CreateBiTree()

{

BiTree T;

char ch;

scanf("%c",&ch);

if (ch=='#')

{

T=NULL;

return T;

}

else

{

T=(BiTNode *)malloc(sizeof(BiTNode));

if (T==NULL)

{

printf("¡Error en la creación del árbol!");

T=NULL;

return T;

}

T->data=ch;

T->lchild=CreateBiTree(); p>

T->rchild=CreateBiTree();

return T

}

}

InorderTraverse; .cpp

#include "tree.h"

void InorderTraverse( BiTree T)

{

Pila de BiTree[MAX_NODE], p= T ;

int top=0 , bool1=1 ;

if (T==NULL)

printf("¡El árbol binario está vacío!\ n" );

else

{

hacer

{

mientras (p!=NULL)

{

pila[++top]=p

p=p->lchild

}

;

if (arriba==0)

{

bool1=0 ;

}else{

p=stack[ arriba] ;

arriba--

printf("%c",p->datos

);

p=p->rchild ;

}

} mientras (bool1!=0) ;

}

}

main_fun.cpp

#include "tree.h"

int main()

{

BiTree T= CreateBiTree();

InorderTraverse(T);

devuelve 0;

}

traverse.cpp

#include "tree.h"

void PreorderTraverse(BiTree T)

{

if (T!=NULL)

{

/* Accede al nodo raíz*/

PreorderTraverse(T->lchild) ;

printf("%c",T->data) ;

PreorderTraverse(T->rchild)

}

}

Por ejemplo, ingrese AB###

Salida BA

Entrada de pedido anticipado y salida de orden medio

Puede modificar el método transversal para cambiar el resultado de salida.