本篇主要写二叉树的结构,中序、前序、后序、层序遍历算法。
二叉树的结构,本篇以如下这个二叉树进行遍历:
中序遍历:左子节点---->中间节点---->右子节点
前序遍历:中间节点----->左子节点---->右子节点
后序遍历: 左子节点----->右子节点----->中间节点
层序遍历:一层一层的从上往下遍历
以上图二叉树结构为例,开始编写代码:
#include <iostream>
#include <queue>
using namespace std;
template <class T> class BinaryTree;
template <class T>
class TreeNode
{
template <class T>
friend class BinaryTree;
public:
TreeNode(const T & d):data(d)
{
leftChild = rightChild = NULL;
}
//private:
T data;
TreeNode *leftChild;
TreeNode *rightChild;
};
template <class T>