c_cpp C ++二叉树的三种遍历的.cpp
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp C ++二叉树的三种遍历的.cpp相关的知识,希望对你有一定的参考价值。
/**
二叉树的遍历分为以下三种:
先序遍历:遍历顺序规则为【根左右】
中序遍历:遍历顺序规则为【左根右】
后序遍历:遍历顺序规则为【左右根】
什么是【根左右】?就是先遍历根,再遍历左孩子,最后遍历右孩子;
举个例子,看下图(图从网上找的):
http://blog.csdn.net/soundwave_/article/details/53120766
先序遍历:ABCDEFGHK
中序遍历:BDCAEHGKF
后序遍历:DCBHKGFEA
*/
void TreeTraversePre(TreeNode* root,vector<int> &vec_Result)
{
if(NULL == root) return;
vec_Result.push_back(root->val);
if(NULL != root->left)
{
// vec_Result.push_back(root->left->val);
TreeTraversePre(root->left, vec_Result);
}
if(NULL != root->right)
{
// vec_Result.push_back(root->right->val);
TreeTraversePre(root->right, vec_Result);
}
return;
}
void TreeTraverseMid(TreeNode* root,vector<int> &vec_Result)
{
if(NULL == root) return;
if(NULL != root->left)
{
// vec_Result.push_back(root->left->val);
TreeTraverseMid(root->left, vec_Result);
}
vec_Result.push_back(root->val);
if(NULL != root->right)
{
// vec_Result.push_back(root->right->val);
TreeTraverseMid(root->right, vec_Result);
}
return;
}
void TreeTraverseBeh(TreeNode* root,vector<int> &vec_Result)
{
if(NULL == root) return;
if(NULL != root->left)
{
// vec_Result.push_back(root->left->val);
TreeTraverseBeh(root->left, vec_Result);
}
if(NULL != root->right)
{
// vec_Result.push_back(root->right->val);
TreeTraverseBeh(root->right, vec_Result);
}
vec_Result.push_back(root->val);
return;
}
以上是关于c_cpp C ++二叉树的三种遍历的.cpp的主要内容,如果未能解决你的问题,请参考以下文章
求C语言高手! 1:用动画演示二叉树的三种遍历。2:绘制出一个小球,在屏幕左右端之间不停滚动。
c_cpp 二叉搜索树的相关操作(创建,插入节点,前,中,后序递归和非递归遍历二叉树)
二叉树的遍历
二叉树的三种非递归遍历方式(附Cjava源码)
二叉树的三种遍历方式
c_cpp 二叉树的镜像的.cpp