您的位置:首页 > 编程语言 > C语言/C++

二分搜索树排序binary search sorting的c++实现

2011-06-24 11:04 330 查看
#include <iostream>
#include <string>
#include <sstream>

using namespace std;
class BST
{
private:
double value;
BST * leftNode;
BST * rightNode;

public:
BST(double v)
{
this->value=v;
this->leftNode=NULL;
this->rightNode=NULL;
}
~BST()
{

}
void addNode(double v) //添加节点
{
if(v<this->value)
{
if(this->leftNode==NULL)
{
this->leftNode=new BST(v);
}
else
{
this->leftNode->addNode(v);
}
}
else
{
if(this->rightNode==NULL)
{
this->rightNode=new BST(v);
}
else
{
this->rightNode->addNode(v);
}
}
}
void walktree() //遍历BST树
{
if(this->leftNode!=NULL)
{
this->leftNode->walktree();
}
cout<<" "<<this->value;
if(this->rightNode!=NULL)
{
this->rightNode->walktree();
}
}
};

int main()
{
cout << "This is a bst search algorithm, enter your number sequence line by line, end with a dot(.) or empty line:" << endl;
string mystr;
double value;
BST* tr=NULL;
do
{
getline(cin,mystr);
if(mystr=="."||mystr=="")
break;
stringstream(mystr) >> value;
if(tr==NULL)
{
tr=new BST(value);
}
else
{
tr->addNode(value);
}
}while(true);
cout<<"After BST sorting, you got the following sequence:/n";
tr->walktree();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐