这篇是非递归方法实现遍历树(C++)的加强版。。。
所以里面包含了非递归遍历的方法。重点是:CreatByPreAndIn函数。
#include <iostream>
#include <queue>
#include <deque>
#include <stack>
using namespace std;
///树节点
struct Node
{
char data;
Node* right;
Node* left;
Node(char data)
{
this->data = data;
right = left = NULL;
}
};
class Tree
{
private:
Node* Root;
///清空树的所有节点的函数
void Clear()
{
deque<Node*> d;
stack<Node*> s;
if (Root == NULL) return;
d.push_front(Root);
Root = NULL;
while (!d.empty())
{
Node* now = d.front();
s.push(now);
d.pop_front();