¿Cuál es el código completo para el recorrido del árbol binario?
#include "iostream.h"
#include "stdlib.h"
#include "stdio.h"
#includelt;stackgt;
usando el espacio de nombres std;
#define NULL 0
#define OK 1
#define OVERFLOW -1
typedef int Estado;
typedef struct nodo
{<
datos de caracteres;
struct node *lchild;
struct node *rchild;
}*bitree;
int k=0;
int profundidad( bitree T)//altura del árbol
{
if(!T)return 0;
else
{ p >
int m=profundidad(T-gt;lchild); int n=profundidad(T-gt;rchild); return (mgt;n?m:n) 1;
}<
}
// Árbol de construcción de primer orden y orden intermedio
struct node *create(char *pre, char *ord, int n) {
estructura nodo * T;
int m;
T=NULL
if(n lt;=0) p>
If(n lt;=0)
T=NULL;
El árbol ha sido creado.
lt;=0)
{
return NULL;
}
otro
{
m=0;
T=new(nodo de estructura);
T-gt; data=*pre;
T-gt; lchild=T-gt; rchild=NULL; mientras(ord[m]!=*pre)
m;
T-gt; m);
T-gt; rchild=create (pre m 1, ord m 1, n-m-1);
//Recorrido recursivo de orden medio
void inorder(struct node *T)
{
if(!T)
return;
else
{
inorder(T-gt;lchild);
coutlt;lt ;T-gt;data;
inorder(T-gt;rchild );
}
}
void inpre(struct nodo *T)
{
if(!T)
return;
else
{
coutlt;lt;T-gt;data;
inpre(T-gt;lchild);
inpre(T-gt;rchild); p>
p>
}
}
}
postorder vacío (nodo de estructura *T)
{
if(!T)
return;
else
{
postorder (T-gt; lchild );
p>postorder (T-gt;rchild);
coutlt;lt;T-gt;data;
}
}
/recorrido no recursivo de precedencia
void inpre1(struct node *T)
Página 2/4
{
nodo de estructura *p;
nodo de estructura *stack[20];
int top=0;
p=T;
coutlt;lt; "El precedente no recursivo es:"lt;lt;endl;
while(p||top! =0)
{
mientras (p)
{
pila[top ]=p;
coutlt;lt;p-gt;data;
p=p-gt;lchild;
}<
p=stack[--top] ;
p=p-gt;rchild ;
}
}
//Recorrido no recursivo de orden intermedio p>
orden nula1(nodo de estructura *T
)
{
estructura nodo *p;
estructura nodo *stack[20];
int top=0; p>
p>
p=T;
coutlt;lt; "El orden intermedio no recursivo es: "lt;lt;
while( p||arriba!=0 )
{
mientras (p)
{
pila[arriba ]=p; /p>
p =p-gt;lchild;
}
p=stack[--top];
coutlt;lt;p -gt;datos;
p=stack[--top];
coutlt;lt;p-gt;datos;
p>
p=p-gt;rchild;
}
}
//función principal
int main()
{
bitree T;
char pre[30], ord[30];
Página 3/4
int n, m;
coutlt; "Ingrese el árbol binario con precedencia - a*bcd/ef:"lt; >
coutlt; lt; "Ingrese el árbol binario con el orden medio a b*cd-e/f: "lt; endl; );
T=create(pre, ord, n);
coutlt;lt; "El recorrido posterior al pedido es:"lt;lt;endl;
coutlt;lt; p>
postorden (T);
coutlt;lt;endl;
inpre1(T);
coutlt; lt;endl;
p>
inorder1(T);
coutlt;lt;endl;
m=profundidad(T); p>
coutlt;lt; "Árbol binario La altura es: "lt;lt;mlt;lt;endl;
return 0;
}