二叉树的递归遍历(思路简单清晰)
2017-12-14 11:31
288 查看
预先建立用数组表示的二叉树的内容,然后建立二叉树,并进行前序、中序、后序遍历的操作,代码如下:
#include<iostream> #include<iomanip> using namespace std; class tree { public: int data; class tree *left, *right; }; typedef class tree* btree; btree create_tree(btree,int); void pre(btree); void in(btree); void post(btree); int main() { int arr[] = {7,4,1,5,16,8,11,12,15,9,2}; btree ptr = nullptr; cout << "[原始数组内容:]" << endl; for (int i = 0; i < 11; i++) { ptr = create_tree(ptr,arr[i]); cout << "[" << setw(2) << arr[i] << "]"; } cout << endl; cout << "二叉树内容" << endl; cout << "前序遍历结果:" << endl; pre(ptr); cout << endl; cout << "中序遍历结果:" << endl; in(ptr); cout << endl; cout << "后序遍历结果:" << endl; post(ptr); system("pause"); return 0; } btree create_tree(btree root, int val) { btree newnode, current, backup=nullptr; newnode = new tree; newnode->data = val; newnode->left = nullptr; newnode->right = nullptr; if (root == nullptr) { root = newnode; return root; } else { for (current = root; current != nullptr;) { backup = current; if (current->data > val) current = current->left; else current = current->right; } if (backup->data > val) backup->left = newnode; else backup->right = newnode; } return root; } void pre(btree ptr)//前序遍历 { if (ptr != nullptr) { cout << "[" << ptr->data << "]"; pre(ptr->left); pre(ptr->right); } } void in(btree ptr)//中序遍历 { if (ptr != nullptr) { in(ptr->left); cout << "[" << ptr->data << "]" ; in(ptr->right); } } void post(btree ptr)//后序遍历 { if (ptr != nullptr) { post(ptr->left); post(ptr->right); cout << "[" << ptr->data << "]"; } }执行结果:
相关文章推荐
- 二叉树的递归遍历(思路简单清晰)
- 二叉树的递归遍历(思路简单清晰)
- 二叉树的递归遍历(思路简单清晰)
- 二叉树的递归遍历(思路简单清晰)
- 二叉树的递归遍历(思路简单清晰)
- 二叉树的递归遍历(思路简单清晰)
- 二叉树的递归遍历(思路简单清晰)
- 二叉树的遍历 递归非递归 思路和 java实现
- 二叉树的遍历 递归非递归 思路和 java实现
- 二叉树的创建、前序中序后序递归遍历与非递归遍历、层序遍历以及二叉树简单应用的C语言实现
- LintCode【简单】69. 二叉树的层次遍历。代码及思路
- 二叉树的遍历 递归非递归 思路和 java实现
- 二叉树三种遍历的非递归思路(JAVASCRIPT)
- LintCode【简单】66. 二叉树的前,中,后序遍历。代码及思路
- 二叉树的遍历 递归非递归 思路和 java实现
- 二叉树的简单递归实现(创建,遍历,高度,大小)
- 二叉树的简单递归实现(创建,遍历,高度,大小)
- JAVA面试题---用java程序遍历二叉树(递归与非递归)
- 二叉树的建立及遍历各种递归
- 二叉树的递归遍历