欢迎来到天天文库
浏览记录
ID:17918228
大小:55.00 KB
页数:10页
时间:2018-09-09
《c++中二叉树实现方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、[cpp] viewplain copy1.#ifndef _BINARYTREE_H_ 2.#define _BINARYTREE_H_ 3. 4.const int MaxSize = 100; 5. 6.template 7.struct BTNode 8.{ 9. T data; 10. BTNode *lchild; 11. BTNode *rchild; 12.}; 13. 14.template
2、15.class BinaryTree 16.{ 17.public: 18. BinaryTree(); //构造函数 19. ~BinaryTree(); //析构函数 20. void PreOrder(){PreOrder(r);} //递归前序遍历 21. void InOrder(){InOrder(r);} //递归中序遍历 22. void PostOrder()
3、{PostOrder1(r);} //递归后序遍历 23. void PreOrder1(){PreOrder1(r);} //非递归前序遍历 24. void InOrder1(){InOrder1(r);} //非递归中序遍历 25. void PostOrder1(){PostOrder(r);} //非递归后序遍历 26. void LevelOrder(){LevelOrder(r);}//层序遍历 27. BTNode* FindNo
4、de(T x){FindNode(r,x);}//查找结点 28. int BTNodeHeigth(){BTNodeHeigth(r);}//树的高度 29. int NodeCount1(){NodeCount1(r);} //基于前序遍历求结点个数 30. int NodeCount2(){NodeCount2(r);} //基于中序遍历求结点个数 31. int NodeCount3(){NodeCount3(r);} //基于后序遍历求结点个数
5、 32. int NodeCount4(){NodeCount4(r);} //递归求结点个数 33. void DispLeaf(){DispLeaf(r);} //输出树的叶子结点 34. void printRouteLength(){printLeavesDepth(r, 0);}//输出树的叶子结点到根结点的路径长度 35. bool printAncestor(T x){printAncestor(r,x);} //输出值为x的结点的祖
6、先结点 36.private: 37. BTNode *r; 38. BTNode* CreateTree(BTNode *t);//构造函数调用 39. void DestroyTree(BTNode *t); //析构函数调用 40. void PreOrder(BTNode *t); //递归前序遍历调用 41. void InOrder(BTNode *t); //递归中序遍历调用
7、 1. void PostOrder(BTNode *t); //递归后序遍历调用 2. void PreOrder1(BTNode *t); //非递归前序遍历调用 3. void InOrder1(BTNode *t); //非递归中序遍历调用 4. void PostOrder1(BTNode *t); //非递归后序遍历调用 5. void LevelOrder(BTNode8、> *t); //层序遍历调用 6. BTNode* FindNode(BTNode *t, T x); 7. int BTNodeHeigth(BTNode *t); 8. int NodeCount1(BTNode *t); //前序遍历求结点个数调用 9. int NodeCount2(BTNode *t); //中序遍历求结点个数调用
8、> *t); //层序遍历调用 6. BTNode* FindNode(BTNode *t, T x); 7. int BTNodeHeigth(BTNode *t); 8. int NodeCount1(BTNode *t); //前序遍历求结点个数调用 9. int NodeCount2(BTNode *t); //中序遍历求结点个数调用
此文档下载收益归作者所有