二叉树的前序,中序,后序遍历 递归实现
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); }
相关文章推荐
- 二叉树先序、中序、后序遍历的非递归实现
- 二叉树的遍历:前序、中序、后序、层序的非递归实现
- 利用栈实现二叉树的先序,中序,后序遍历的非递归操作
- 二叉树先序、中序、后序遍历的非递归实现
- 二叉树先序、中序、后序遍历的非递归实现
- 二叉树前序、中序、后序遍历的递归与非递归算法实现
- 二叉树先序,中序,后序遍历非递归实现
- 二叉树的前序、中序、后序遍历 递归非递归实现
- ZT 二叉树先序,中序,后序遍历非递归实现
- 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现
- 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现
- 二叉树的遍历 前序 中序 后序 分别实现递归和非递归遍历方式
- 用非递归实现二叉树的前序、中序、后序、层次遍历,用递归实现查找、统计个数、比较、求深度
- 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现
- java语言实现二叉树的前序、中序与后序遍历(递归与非递归)
- 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 二叉树的创建,先序、中序、后序遍历的递归实现以及层序遍历
- [转]非递归实现二叉树的前序,中序,后序遍历
- 二叉树先序、中序、后序遍历的非递归实现,纯c代码
- 二叉树的遍历(前序、中序、后序、层序),递归和非递归实现