【数据结构】 二叉树的实现
2011-12-15 22:45
141 查看
学习数据结构基础,如有错误,请指正。
/************************************************************************ 数据结构:二叉树的实现,创建、先序、中序、后序遍历(递归实现) ************************************************************************/ #ifndef __BITTREE_H__ #define __BITTREE_H__ typedef char ElemType; struct BitNode{ ElemType data; BitNode *lChild; BitNode *rChild; }; class BitTree{ public: BitTree(); ~BitTree(); void creatBitTree(BitNode* &tree); void preOrderTraverseTree(BitNode* tree); void inOrderTraverseTree(BitNode* tree); void posOrderTraverseTree(BitNode* tree); void visit(ElemType e); BitNode *bitTree; }; #endif // __BITTREE_H__ #include "BitTree.h" #include <iostream> using std::cout; using std::cin; using std::endl; BitTree::BitTree() { this->bitTree = NULL; } BitTree::~BitTree() { } void BitTree::creatBitTree(BitNode* &tree) { // 先序、递归建树 cout<<"enter a node char:"; char ch = NULL; cin>>ch; if ( 'q' == ch ) { tree = NULL; } else{ tree = new BitNode(); tree->data = ch; this->creatBitTree( tree->lChild ); this->creatBitTree( tree->rChild ); } } void BitTree::preOrderTraverseTree(BitNode* tree) { if (tree) { visit(tree->data); preOrderTraverseTree(tree->lChild); preOrderTraverseTree(tree->rChild); } } void BitTree::inOrderTraverseTree(BitNode* tree) { if (tree) { preOrderTraverseTree(tree->lChild); visit(tree->data); preOrderTraverseTree(tree->rChild); } } void BitTree::posOrderTraverseTree(BitNode* tree) { if (tree) { preOrderTraverseTree(tree->lChild); preOrderTraverseTree(tree->rChild); visit(tree->data); } } void BitTree::visit(ElemType e) { cout<<e; } int main() { BitTree *aTree = new BitTree(); aTree->creatBitTree(aTree->bitTree); cout<<"preOrder traverse Tree:"<<endl; aTree->preOrderTraverseTree(aTree->bitTree); cout<<endl; cout<<"inOrder traverse Tree:"<<endl; aTree->inOrderTraverseTree(aTree->bitTree); cout<<endl; cout<<"posOrder traverse Tree:"<<endl; aTree->posOrderTraverseTree(aTree->bitTree); cout<<endl; getchar(); return 0; }
相关文章推荐
- 数据结构与C语言实现(三)——树(上):二叉树
- 数据结构(C实现)------- 遍历二叉树
- 【数据结构】搜索二叉树的(递归与非递归)实现,包括:增Insert,删Remove,查Find
- 【数据结构练习】二叉树的实现
- 【数据结构】普通二叉树的实现
- 数据结构--二叉树代码实现(建立,前序,中序,后续遍历,树的深度,销毁)
- 数据结构:二叉树的实现(C++)
- 【数据结构】之二叉树的java实现
- 【学习点滴-数据结构-二叉树】二叉查找树源码实现
- 数据结构 ——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 数据结构的C实现_二叉树
- 【数据结构】二叉树顺序结构实现_BiTreeArray
- 「数据结构」二叉树的遍历以及Python实现
- 数据结构中二叉树的c++实现
- 数据结构学习之-二叉树的定义和存储实现
- 数据结构C++实现——二叉树
- c++实现数据结构的二叉树及其遍历二叉树
- java 数据结构二叉树的实现代码
- 数据结构 —— 二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 数据结构——树(2)一般树转二叉树Java实现