1. 二叉树的创建数组;‘#’ 代表nullptr
int arr[] = { 1, 2, 3, '#', '#', 4, 40, '#', '#', '#', 5, 6, '#', '#', '#' };
2. 创建二叉树的代码--先序遍历的步骤相同。
template<typename T>
BinTreeNode<T>* BinTree<T>::CreateBinTree(T * dataArr_, size_t dataArrLength, const T & nullMark, size_t & index)
{
BinTreeNode<T>* root = nullptr;
if (dataArr_[index] != nullMark)
{
root = new BinTreeNode<T>(dataArr_[index]);
root->left = CreateBinTree(dataArr_, dataArrLength, nullMark, ++index);
root->right = CreateBinTree(dataArr_, dataArrLength, nullMark, ++index);
}
return root;
}
二叉树创建的大致过程