Código fuente del servicio de cola
LZ debe usar colas, ¡pero definitivamente no es la opción correcta!
La cola se ve así:
# incluir ltiostream gt
Usar espacio de nombres std
nodo de bits de estructura typedef
{
datos de caracteres;
estructura bitnode *lchild, *rchild
}*bitree, árbol;
int número = 0;
void create bitree(bitree amp; t)
{
char c;
int i=0, r= 0, f = 0; //r, f apuntan a la cabeza y la cola del equipo respectivamente.
bitree p=NULL, temp=NULL, pre=NULL, s[100]
s[0]= NULL
int lflag[100; ]= { 0 };
int rflag[100]= { 0 };
Printf("Ingrese el nodo raíz: "); = Nuevo árbol;
t->;l child = t- gt;rchild = NULL
scanf("c", ampt->;data);
temp = pre = t- gt;lniño
s[ I]= t;
f = I;
p = t;
Y (f!=r)
{
Si (p->;lchild == NULL amp ampflag[i]==0)
{
Printf("Ingrese el elemento secundario izquierdo de c: ", p- gt; data
fflush(stdin); scanf( "c ", ampc);
if (c!='#')
{
p->; /p >
p = p- gt; lniño
p->; l niño = p- rniño = NULL
p->; /p >
s[ f]= p;
I = f;
lflag[I]= rflag[I]= 0; }
Otro
lflag[I]= 1;
}
else if(p- gt; rchild == NULL amp amprflag[ i]==0)
{
Printf("Ingrese el hijo correcto de c: ", p- gt; data
); fflush( stdin);
scanf("c ", ampc);
if (c!='#')
{
p->rchild = nuevo árbol;
p = p-gt;rchild
p->l child = p-gt;rchild = NULL
p->; datos = c;
s[ f] = p;
I = f
lflag[I]= rflag[I] = 0;
}
Otro
{
rflag[I]= 1;
p = s[ r];
I = r;
}
}
Otros
{ p>
p = s[ r];
I = r
}
}
}
Preorden vacío (árbol binario ampT)//Atraviesa el árbol binario y genera la función.
{
if (t!=0)
{
cout lt ltt->;datos lt lt",";
Reserva(t->l niño);
Reserva(t->rchild);
}
}
void main()
{
bitree t;
t = 0
crear bitree; (t);
cout lt lt "El valor del pedido anticipado es: ";
Preorden (t); LZ usa pila, que es más consistente con la jerarquía de entrada del árbol:
# include ltiostream gt
Usa el espacio de nombres std
nodo de bits de estructura typedef p>
{
datos de caracteres;
estructura bitnode *lchild, *rchild
}*bitree, árbol;
int número = 0;
void create bitree(bitree amp; t)
{
char c;
int I = 0 ;
bitree p=NULL, temp=NULL, pre=NULL, s[100];
s[0]= NULL
int lflag[; 100]= { 0 };
int rflag[100]= { 0 };
Printf("Ingrese el nodo raíz: "); t = nuevo árbol;
t->;l child = t- gt;rchild = NULL
scanf("c", ampt->;data);
temp = pre = t- gt;lchild
s[ I]= t;
p = t;
mientras(s[i] !=vacío)
p>{
If (p->;lchild == NULL amp ampflag[i]==0)
{ p>
Printf(" Ingrese el elemento secundario izquierdo de c: ", p- gt; data
fflush(stdin);
scanf("c "); , ampc);
si(c! ='#')
{
p->; lchild = nuevo árbol;
p = p- lchild
p->;l niño = p- gt;rchild = NULL
p->;data = c;
s[ I]= p;
lflag[I]= rflag[I]= 0;
}
Otros
lflag[I]= 1;
}
else if(p- gt;rchild == NULL amp amprflag[i]==0)
{
Printf("Ingrese el valor correcto de c hijo: ", p- gt; datos);
fflush(stdin);
scanf("c", ampc);
if( c ! ='#')
{
p->;rc
hild = nuevo árbol;
p = p- gt;
p->; l niño = p- gt = NULL
p-> ;datos=c;
s[ I]= p;
lflag[I]= rflag[I]= 0;
}
Otro
{
rflag[I]= 1;
p = s[-I];
}
}
Otro
p = s[-I];
}
}
Preorden vacío (árbol binario ampT) // Recorre el árbol binario y genera la función.
{
if (t!=0)
{
cout lt ltt->;datos lt lt",";
Reserva(t->l niño);
Reserva(t->rchild);
}
}
void main()
{
bitree t;
t = 0
crear bitree; (t);
cout lt lt "El valor del pedido anticipado es: ";
Preorden (t); como preguntar! ¡Tus preguntas son a menudo donde quiero aprender!