*
*前序、后序、中序变量二叉树(递归解法)
*中序 栈实现
*深度遍历 队列实现
*应用:二叉树镜像(剑指offer)
*/
typedef struct BiTNode *BiTree;//结点指针
//前序遍历
void preOrderTraverse(BiTree T)
{
if(NULL == T)
return;
printf("%c", T->data);
preOrderTraverse(T->lchild);
preOrderTraverse(T->rchild);
return;
}
//中序遍历
void midOrderTraverse(BiTree T)
{
if(NULL != T)
{
midOrderTraverse(T->lhild);
printf("%c", T->data);
midOrderTraverse(T->rchild);
}
return;
}
//后序遍历
void postOederTraverse(BiTree T)
{
if(NULL != T)
{
postOederTraverse(T->lchild);
postOederTraverse(T->rchild);
printf("%c",T->data);
}
return;
}
/*
*中序非递归实现 栈实现
*栈使用数字实现,存储单元是结点指针
*双重循环:外面判断栈、当前结点是否空;
* 里面的循环每次把所有左结点入栈(注意溢出检查)
* 接着栈顶元素出栈打印,并把有子树入栈
*/
void midOrder(BiTree T)
{
if(NULL == T)
r
数据结构-二叉树(递归前序、中序、后序遍历;栈实现中序变量;二叉树镜像)
最新推荐文章于 2024-05-29 16:57:33 发布
这篇博客介绍了二叉树的前序、中序、后序递归遍历方法,以及中序遍历的栈实现。此外,还详细讲解了如何通过递归实现二叉树的镜像操作,包括交换左右子树的节点。
摘要由CSDN通过智能技术生成