二叉排序树(或二叉查找树)的建立

来源:互联网 发布: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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大玻璃瓶的玻璃瓶盖拧不开怎么办 按压式洗发水瓶盖打不开怎么办 向下按压的瓶盖打不开怎么办 玻璃罐头开过了打不开怎么办 玻璃瓶的塑料盖子打不开怎么办 泡酒玻璃瓶盖子打不开怎么办 罐头的塑料瓶盖打不开怎么办 塑料水杯盖紧了怎么办 拧不开矿泉水瓶盖怎么办 新暖壶盖吸住了怎么办 暖瓶盖被吸住了怎么办 做面包和面粘手怎么办 面包面和稀了怎么办 鱼缸氧气泵声音大怎么办 中班安全遇到火灾怎么办反思 汤洒了怎么办活动反思 下水道被塑料盖堵了怎么办 卫生间地漏盖子掉到下水道怎么办 洗手池下水道翻盖打不开了怎么办 培乐多彩泥吃了怎么办 超轻橡皮泥干了怎么办 脑梗脾气大怎么办好啊 牙齿喝饮料烂了怎么办 大门牙缝里黑了怎么办 椰汁拧不开瓶盖怎么办 装蜂蜜的玻璃罐打不开怎么办 蚂蚱没有草吃了怎么办 笔记本电源已接通未充电怎么办 电源已接通未充电怎么办 遮盖纹身好了颜色淡了怎么办 致炫方向盘变重怎么办 xp音频图标没了怎么办 狙击精英3没子弹怎么办 干活干的手腕疼怎么办 干了活不给钱怎么办 干了活要不到钱怎么办 活干完了钱不给怎么办 微信语音聊天音量很小怎么办 一手软件崩溃钱卡住了怎么办 身上皮肤很黑怎么办?好想穿短裙 家里有很多小飞虫怎么办