数据结构二叉树系列
二叉树遍历
①先序遍历
// 先序遍历
void pretravel(node* root)
{
if(root == NULL) return ;
cout<< root->val << endl;
pretravel(root->left);
pretravel(root->right);
}
②中序遍历
// 中序遍历
void medtravel(node* root)
{
if(root == NULL) return ;
medtravel(root->left);
cout<< root->val << endl;
medtravel(root->right);
}
③后序遍历
// 后序遍历
void afttravel(node* root)
{
if(root == NULL) return ;
afttravel(root->left);
afttravel(root->right);
cout<< root->val << endl;
}
④层次遍历
// 层次遍历
void laytravel(node*root)
{
queue<node*> q;
if(root == NULL) return;
q.push(root);
while(!q.empty())
{
node *p = q.front();
cout << p->val << endl;
if(p->left != NULL) q.push(p->left);
if(p->right != NULL) q.push(p->right);
q.pop();
}
}