二叉排序树(或二叉查找树)的建立
来源:互联网 发布:c语言 external 编辑:程序博客网 时间:2024/05/18 03:33
建立两个类,一个结点类,一个树类,通过树类方法调用结点类的方法递归建树,二叉排序树中序输出得到从小到大排序的数列。
为了方便后面的相关操作,类的成员变量中定义一个father来记录父节点。
#include <iostream>#include <string>#include <cstdlib>using namespace std;class Node{public: int data; Node *lchild; Node *rchild; Node *father; Node(int _data, Node *_father = NULL){ data = _data; lchild = NULL; rchild = NULL; father = _father; } ~Node(){ if(lchild != NULL) delete lchild; if(rchild != NULL) delete rchild; } void myinsert(int value){ if(data == value) return; else if(data > value){ if(lchild == NULL) lchild = new Node(value, this); else lchild->myinsert(value); } else{ if(rchild == NULL) rchild = new Node(value, this); else rchild->myinsert(value); } } void inOrder(){ if(lchild != NULL) lchild->inOrder(); cout << data <<" "; if(rchild != NULL) rchild->inOrder(); }};class BinaryTree{private: Node *root;public: BinaryTree(){ root = NULL; } ~BinaryTree(){ if(root != NULL) delete root; } void myinsert(int value){ if(root == NULL) root = new Node(value); else root->myinsert(value); } void inOrder(){ if(root != NULL) root->inOrder(); else cout << "binarytree is empty!!!"; }};int main(){ int n; BinaryTree binarytree; int temp[] = {1, 2, 0, -1, 2333, 1111, 5, 4, 7, 14, 418}; for(int i=0; i<11; i++){ binarytree.myinsert(temp[i]); } binarytree.inOrder(); cout<<endl; system("pause"); return 0;}
如有疑问或错误,欢迎提出,谢谢
0 0
- 二叉排序树(或二叉查找树)的建立
- 二叉排序树(BST)/二叉查找树的建立(BST是笔试面试的常客)
- 二叉排序树(BST)/二叉查找树的建立(BST是笔试面试的常客)
- 二叉排序树(二叉查找树)
- 二叉排序树(二叉查找树)
- 二叉查找树(二叉排序树)
- 二叉排序树(二叉查找树)
- 二叉树(二叉排序树)的建立以及遍历
- 二叉搜索树(二叉排序树,二叉查找树,二叉检索树)的查找,插入,删除
- 二叉排序树:HDU3791-二叉搜索树(用指针建立二叉排序树)
- 二叉查找树(二叉排序树)的详细实现(BST)
- 用JAVA实现二叉查找树(二叉排序树)的打印
- 二叉排序树(二叉查找树)的基本操作
- 查找二叉树(即二叉排序树)的学习
- 二叉查找树(二叉排序树)的详细实现
- 二叉查找树(二叉排序树)的详细实现
- 二叉查找树(二叉排序树)的详细实现
- 二叉查找树(二叉排序树)的详细实现
- 【Leetcode】Interleaving String
- CopytOnWriteArrayList
- Android BGABadgeView:BGABadgeImageView以及BGABadgeRelativeLayout(4)
- JAVA-元数据
- Problem F
- 二叉排序树(或二叉查找树)的建立
- 减少Draw Call的方法
- 根据一个域名取其根域
- Add Digits
- javascript写99乘法表
- selenium 和 phantomJS或chrome浏览器抓取渲染网页
- js报错总结
- [Unity3D]图形渲染优化、渲染管线优化、图形性能优化
- 判断是否连接网络以及是否是局域网