Simple implementation of the BinaryTree preorder traversal, inorder traversal, post traversal
2017-10-29 16:38
671 查看
#include <iostream> using namespace std; struct BiTNode { char data; struct BiTNode *lchild, *rchild; }; class BinaryTree { public: BinaryTree(); void CreateBiTree(); void PreOrderTraverse(); void Inorder(); void Posorder(); void PreOrderCount(); void PreOrderCount(BiTNode* &T) ; void CreateBiTree(BiTNode* &T); void PreOrderTraverse(BiTNode* &T) ; void Inorder(BiTNode* &T) ; void Posorder(BiTNode* &T); int GetCount(); private: BiTNode*T; int count; }; BinaryTree::BinaryTree() { count=0; } void BinaryTree::CreateBiTree(BiTNode* &T) { char ch; cin>>ch; if(ch=='.')//if((ch=getchar())=='#') T=NULL; else { T=new BiTNode; T->data=ch; CreateBiTree(T->lchild); CreateBiTree(T->rchild); } } void BinaryTree::PreOrderTraverse(BiTNode* &T) { if(T) { cout<<T->data; PreOrderTraverse(T->lchild); PreOrderTraverse(T->rchild); } } void BinaryTree::Inorder(BiTNode* &T) { if(T) { Inorder(T->lchild); cout<<T->data; Inorder(T->rchild); } } void BinaryTree::Posorder(BiTNode* &T) { if(T) { Posorder(T->lchild); Posorder(T->rchild); cout<<T->data; } } void BinaryTree::PreOrderCount(BiTNode* &T) { if(T) { count++; PreOrderCount(T->lchild); PreOrderCount(T->rchild); } } void BinaryTree::CreateBiTree() { CreateBiTree(T); } void BinaryTree::Inorder() { Inorder(T); } void BinaryTree::PreOrderTraverse() { PreOrderTraverse(T); } void BinaryTree::PreOrderCount() { PreOrderCount(T); } int BinaryTree::GetCount() { return count; } void BinaryTree::Posorder() { Posorder(T); } int main() { BinaryTree bn; cout<<"创建一颗树,输入字符代表树的数据,用“.”表示空树:"<<endl; bn.CreateBiTree(); cout<<"Preorder traversal:"<<endl; bn.PreOrderTraverse(); cout<<endl; cout<<"Inorder traversal:"<<endl; bn.Inorder(); cout<<endl; cout<<"Postorder traversal:"<<endl; bn.Posorder(); cout<<endl; cout<<"The number of nodes is:"<<endl; bn.PreOrderCount(); cout<<bn.GetCount()<<endl; return 0; }
相关文章推荐
- Given preorder and inorder traversal of a tree, construct the binary tree.
- Given a binary tree, return the preorder traversal of its nodes' values.
- Given a binary tree, return the preorder traversal of its nodes' values.
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode题解-105-Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode] 105. Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode:Construct Binary Tree from Preorder and Inorder Traversal
- [leetcode]Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal 从先序和中序重建二叉树@LeetCode
- Construct Binary Tree from Preorder and Inorder Traversal
- [leetcode]105. Construct Binary Tree from Preorder and Inorder Traversal@Java解题报告
- LeetCode Construct Binary Tree from Preorder and Inorder Traversal
- leetcode5:Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal leetcode
- 剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- 【LeetCode】Construct Binary Tree from Preorder and Inorder Traversal
- *[Lintcode]Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal