二叉树遍历方式

来源:互联网 发布:签名设计图软件 编辑:程序博客网 时间:2024/06/06 02:24

二叉树三种遍历方式 (C++实现)

众所周知,二叉树的遍历方式分为三种(前序遍历,中序遍历以及后序遍历)

  • 前序遍历: 根 左 右
  • 中序遍历: 左 根 右
  • 后序遍历: 左 右 根

三部分代码通过C++代码实现

#include<iostream>using namespace std;struct node {    int data;    struct node* left;    struct node* right;    node() { data = 0; left = NULL; right = NULL; }};node* createTree(node* & root) {    int data;    cin >> data;    if(data == -1) { return NULL; }    root = new node();    root->data = data;    root->left = createTree(root->left);    root->right = createTree(root->right);    return root;}void traverseTreeBefore(node* & root) {    if(root == NULL)  return;    printf("%d ", root->data);    traverseTreeBefore(root->left);    traverseTreeBefore(root->right);}void traverseTreeMiddle(node* & root) {    if(root == NULL) return;    traverseTreeMiddle(root->left);    printf("%d ", root->data);    traverseTreeMiddle(root->right);}void traverseTreeAfter(node* & root) {    if(root == NULL) return;    traverseTreeAfter(root->left);    traverseTreeAfter(root->right);    printf("%d ", root->data);}int main() {    node* root;    createTree(root);    traverseTreeBefore(root);    printf("\n");    traverseTreeMiddle(root);    printf("\n");    traverseTreeAfter(root);    printf("\n");    return 0;}