Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Cuál es el código completo para el recorrido del árbol binario?

¿Cuál es el código completo para el recorrido del árbol binario?

Código transversal 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

{

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)

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>

}

}

}

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

orden nula1(nodo de estructura *T

)

{

estructura nodo *p;

estructura nodo *stack[20];

int top=0;

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);

coutlt;lt; "Árbol binario La altura es: "lt;lt;mlt;lt;endl;

return 0;

}