C++ 数据结构二叉树(前序数据结构二叉树(前序/中序中序/后序递归、非递归遍历)后序递归、非递归遍历)
C++ 数据结构二叉树(前序数据结构二叉树(前序/中序中序/后序递归、非递归遍历)后序递归、非递归遍历)
二叉树的性质:二叉树的性质:
二叉树是一棵特殊的树,二叉树每个节点最多有两个孩子结点,分别称为左孩子和右孩子。
例:
实例代码:实例代码:
#include <iostream>
#include <Windows.h>
#include <stack>
using namespace std;
template <class T>
struct BinaryTreeNode
{
int _data;
BinaryTreeNode<T>* _left; //左孩子
BinaryTreeNode<T>* _right; //右孩子
BinaryTreeNode(const T& data)
:_data(data)
, _left(NULL)
, _right(NULL)
{}
};
template <class T>
class BinaryTree
{
typedef BinaryTreeNode<T> Node;
public:
BinaryTree()
:_root(NULL)
{}
BinaryTree(T* arr, size_t n, const T& invalid=T())
{
size_t index = 0;
_root = _CreatTree(arr, n, invalid, index);
}
void PreOrderR() //前序遍历 递归
{
_PreOrderR(_root);
- 1
- 2
前往页