部分实现方式有些非原创,参考了他人思路。
使用C++中的类实现了二叉树,并实现了风格统一的三种递归遍历、三种迭代遍历,以及层序遍历。
水平有限,实现比较简化。
//BinaryTree
#include<iostream>
#include<stack>
#include<queue>
using namespace std;
class btNode {
public:
double value;
btNode* left;
btNode* right;
public:
btNode() {
this->value=0.0;
this->left=NULL;
this->right=NULL;
}
btNode(double m_value=0.0) {
this->value=m_value;
this->left=NULL;
this->right=NULL;
}
~btNode() {
}
void setLeft(double m_value) {
this->left=new btNode(m_value);
// this->left->value=m_value;
}
void setRight(double m_value) {
this->right=new btNode(m_value);
// this->right->value=m_value;
}
// int printSelf();
//三种非递归遍历(栈)
int preGo1();
int miGo1();
int postGo1();
//层序遍历 (队列)
int levelGo();