referencia
- "Estructura de datos de Dahua"
- Esta nota es solo para registros de aprendizaje
1. Recorrido de pedidos por adelantado
Regla: siga la forma de acceder a la raíz primero, luego al subárbol izquierdo y finalmente al subárbol derecho (raíz-> izquierda-> derecha)
// 前序遍历
void PreOrderTraverse(BiTree T)
{
if(T==NULL)
return ;
printf("%c",T->data); // 显示结点数据,也可以是其他操作
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
Secuencia de acceso: ABDGHCEIF
Recorrido en orden
Regla: visite primero el subárbol izquierdo, luego el nodo raíz (se refiere al nodo raíz del subárbol actual, no al nodo raíz de todo el árbol ) y finalmente el subárbol derecho (izquierda-> raíz-> derecha)
Como se muestra en la figura, en el subárbol marcado por el cuadro amarillo, D es el nodo raíz del subárbol
// 中序遍历
void InOrderTraverse(BiTree T)
{
if(T==NULL)
return ;
InOrderTraverse(T->lchild);
printf("%c",T->data);
InOrderTraverse(T->rchild);
}
Secuencia de acceso: GDHBAEICF
Travesía posterior
Regla: Siga el orden del subárbol izquierdo primero, luego el subárbol derecho y el último nodo raíz (sigue siendo el nodo raíz del subárbol actual) (izquierda-> derecha-> raíz)
// 后序遍历
void PostOrderTraverse(BiTree T)
{
if(T==NULL)
return ;
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
printf("%c",T->data);
}
Secuencia de acceso: GHDBIEFCA
De hecho, el llamado pre, medio y post orden se refiere al orden en el que se visitan las raíces. Como en el orden anterior, primero se visita la raíz y, en el orden medio, se visita la raíz en segundo lugar.
Cruce de secuencia
El recorrido de la secuencia de capas comienza desde el nodo de seguimiento, capa por capa, y escanea de izquierda a derecha para cada capa.
Secuencia de acceso: ABCDEFGHL
void LevelOrder(BiTree b)
{
InitQueue(Q);
BiTree p;
EnQueue(Q,b); //根结点进队
while(IsEmpty(Q))
{
//队列不空循环
DeQueue(Q,p)
//队头元素出队
printf(“%c”,p->data);
if(p->lchild!=NULL)
EnQueue(Q,p->lchild);
if(p->rchild!=NULL)
EnQueue(Q,p->rchild);
}
}
**Nota
- El recorrido de la secuencia de capas es muy similar al recorrido del gráfico en amplitud primero en la idea algorítmica. **