二叉树先序遍历,(1)先序访问根节点,(2)先序访问左子树(3)先序访问右子树
二叉树中序遍历,(1)中序访问根节点,(2)中序访问左子树(3)中序访问右子树
二叉树后序遍历;(1)后序访问根节点,(2)后序访问左子树(3)后序访问右子树
测试用例:int [10]={' 1 ', ' 2 ', ' 3 ', ' # ', ' # ', ' 4 ', ' # ', ' # ', ' 5 ', ' 6 '}
代码:
# includeusing namespace 性传播疾病; # include # include template struct BinaryTreeNode { ,,,BinaryTreeNode *, _left; ,,,BinaryTreeNode *, _right; ,,,T _data; ,,,BinaryTreeNode (const T&, d) ,,,,,,,:_left(空) ,,,,,,,,_right(空) ,,,,,,,,_data (d) ,,,{} }; template class BinaryTree { 公众: ,,,BinaryTree () ,,,,,,,:_root(空) ,,,{} ,,,BinaryTree (const T *, size_t 大小,const T&,无效) ,,,{ ,,,,,,,size_t index =, 0; ,,,,,,,_root =, _Create(大小,索引,无效); ,,,} ,,,//BinaryTree (const BinaryTree< T>,, d) ,,,//{ ,,,//,,,,BinaryTreeNode , root =,空; ,,,//} ,,,BinaryTree ,, operator =, (const BinaryTree< T>,, d) ,,,{ ,,,,,,,交换(根,d._root ); ,,,} ,,,void PrevOrder () ,,,{ ,,,,,,_PrevOrder (_root); ,,,} ,,,void 有条不紊地进行() ,,,{ ,,,,,,_InOrder (_root); ,,,} ,,,size_t 尺寸() ,,,{ ,,,,,,,_Size (_root); ,,,} ,,,size_t 深度() ,,,{ ,,,,,,,return _Depth (_root); ,,,} ,,,size_t LeafSize () ,,,{ ,,,,,,,return _LeafSize (, _root); ,,,} ,,,void LevelOrder () ,,{ ,,,,,,,_LeavelOrder (); ,,} ,,,void PrevOrder_NonR () ,,,{ ,,,,,,,_PrevOrder_NonR (); ,,,} ,,,void InOrder_NonR () ,,,{ ,,,,,,,_InOrer_NonR (); ,,,} ,,,void PostOrder_NonR () ,,,{ ,,,,,,,_PostOrder_NonR (); ,,,} 公众: 保护: ,,BinaryTreeNode *, _Create (const T *, size_t 大小,size_t&,指数,const T&,无效) ,,{ ,,,,,,BinaryTreeNode , * root =,空; ,,,,,,,(index ,((指数)); ,,,,,,,,,,根→_left =, _Create(大小,+ +指数,无效); ,,,,,,,,,,根→_right =, _Create(大小,+ +指数,无效); ,,,,,,} ,,,,,,return 根源; ,,} ,,void _PrevOrder (BinaryTreeNode *,根) ,,{ ,,,,,,如果(root ==, NULL) ,,,,,,{ ,,,,,,,,,,,返回; ,,,,,,} ,,,,,,cout<& lt;根→_data<& lt;“,”,; ,,,,,,_PrevOrder(根→_left ); ,,,,,,_PrevOrder(根→_right); ,,} ,,void _InOrder (BinaryTreeNode *,根) null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null 二叉树的创建以及递归与非递归遍历