您的位置:首页 > 其它

二叉树的前序,中序,后序遍历 递归实现

2014-10-06 09:47 465 查看
前序遍历:

#include <iostream>
using namespace std;

struct TreeNode {
int value;
TreeNode* left;
TreeNode* right;
};

TreeNode* createNode(int value) {
TreeNode* node = new TreeNode;
node -> value = value;
node -> left = NULL;
node -> right = NULL;
return node;
}

void BinaryTree_PreOrder(TreeNode* root) {
if(root == NULL) return;
cout<<root -> value<<ends;
if(root -> left) {
BinaryTree_PreOrder(root -> left);
}
if(root -> right) {
BinaryTree_PreOrder(root -> right);
}
}

int main() {
TreeNode* root = new TreeNode;
root -> value = 10;
root -> left = createNode(5);
root -> right = createNode(12);
root -> left -> left = createNode(4);
root -> left -> right = createNode(7);
BinaryTree_PreOrder(root);
}


中序遍历:

#include <iostream>
using namespace std;

struct TreeNode {
int value;
TreeNode* left;
TreeNode* right;
};

TreeNode* createNode(int value) {
TreeNode* node = new TreeNode;
node -> value = value;
node -> left = NULL;
node -> right = NULL;
return node;
}

void BinaryTree_PreOrder(TreeNode* root) {
if(root == NULL) return;
if(root -> left) {
BinaryTree_PreOrder(root -> left);
}
cout<<root -> value<<ends;
if(root -> right) {
BinaryTree_PreOrder(root -> right);
}
}

int main() {
TreeNode* root = new TreeNode;
root -> value = 10;
root -> left = createNode(5);
root -> right = createNode(12);
root -> left -> left = createNode(4);
root -> left -> right = createNode(7);
BinaryTree_PreOrder(root);
}


后序遍历:

#include <iostream>
using namespace std;

struct TreeNode {
int value;
TreeNode* left;
TreeNode* right;
};

TreeNode* createNode(int value) {
TreeNode* node = new TreeNode;
node -> value = value;
node -> left = NULL;
node -> right = NULL;
return node;
}

void BinaryTree_PreOrder(TreeNode* root) {
if(root == NULL) return;
if(root -> left) {
BinaryTree_PreOrder(root -> left);
}
if(root -> right) {
BinaryTree_PreOrder(root -> right);
}
cout<<root -> value<<ends;
}

int main() {
TreeNode* root = new TreeNode;
root -> value = 10;
root -> left = createNode(5);
root -> right = createNode(12);
root -> left -> left = createNode(4);
root -> left -> right = createNode(7);
BinaryTree_PreOrder(root);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐