二叉树的三种遍历方式是什么,二叉树的三种遍历方式是
永远的神干货盘点
1.二叉树的结构:
2.二叉树的前序遍历:
3.二叉树的中序遍历:
4.二叉树的后序遍历:
5.二叉树前、中、后序的代码实现:
前序遍历函数:
中序遍历函数:
后序遍历:
完整代码:
代码运行结果截图:
编辑1.二叉树的结构:每一个二叉树均可以分为三部分:1.根节点2.左子树3.右子树。
比如上图中的A的左右子树分别是乙、丙、而E的左右子树为零、零。通常我们把空省略。
2.二叉树的前序遍历:又叫先根遍历,遍历顺序是根节点、左子树、右子树。
上图的前序遍历:A B D空空E空空C空空
省略空后:A B D E C
3.二叉树的中序遍历:遍历顺序:左子树、根节点、右子树
上图的中序遍历:空D空B空E空A空C空
省略空后:D建筑工程公司
4.二叉树的后序遍历:遍历顺序:左子树、右子树、根节点
上图的中序遍历:NULL NULL NULL NULL D NULL NULL E B NULL NULL C A
省略空后:D欧洲银行
5.二叉树前、中、后序的代码实现:前序遍历函数:void prev_order(BTNode* root)//前序遍历
{
if (root==NULL)
{
printf( NULL );
返回;
}
printf(%c ,root-data);
上一个订单(根左);
上一个订单(根右);
}
中序遍历函数:void on_order(BTNode* root)//中序遍历
{
if (root==NULL)
{
printf( NULL \ n );
返回;
}
上一个订单(根左);
printf(%c ,root-data);
上一个订单(根右);
}
后序遍历:void post_order(BTNode* root)//后序遍历
{
if (root==NULL)
{
printf( NULL \ n );
返回;
}
上一个订单(根左);
上一个订单(根右);
printf(%c ,root-data);
}
完整代码:# define _ CRT _ SECURE _ NO _ WARNINGS 1
#包含标准视频
#包含标准库
typedef char BTDataType
数据类型说明结构双星系统
{
Bt数据类型数据;
结构BinaryTreeNode * left
struct BinaryTreeNode * right
} BTNode
BTNode* BuyNode(BTDataType x)//开辟空间存储变量
{
Bt节点*新节点=(Bt节点*)malloc(sizeof(Bt节点));
新节点-数据=x;
new node-left=NULL;
new node-right=NULL;
返回节点
}
void prev_order(BTNode* root)//前序遍历
{
if (root==NULL)
{
printf( NULL );
返回;
}
printf(%c ,root-data);
上一个订单(根左);
上一个订单(根右);
}
void on_order(BTNode* root)//中序遍历
{
if (root==NULL)
{
printf( NULL \ n );
返回;
}
上一个订单(根左);
printf(%c ,root-data);
上一个订单(根右);
}
void post_order(BTNode* root)//后序遍历
{
if (root==NULL)
{
printf( NULL \ n );
返回;
}
上一个订单(根左);
上一个订单(根右);
printf(%c ,root-data);
}
int main(void)
{
Bt节点* n1=buy节点( A );
Bt节点* N2=买入节点( B );
Bt节点* n3=buy节点( C );
Bt节点* n4=buy节点( D );
Bt节点* n5=buy节点( E );
n1-左=n2
n1-右=n3
氮气-左=n4
氮气-右=n5
prev _ order(n1);
printf( \ n );
on _ order(n1);
printf( \ n );
post _ order(n1);
printf( \ n );
返回0;
}
代码运行结果截图:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。