struct treenode
{
double cnt;
char data[32];
treenode* left;
treenode* right;
treenode()
{
cnt=1.0; left=right=NULL;
}
}*root;
int n;
void build_binary_search_tree(char *ss)
{
treenode *ptr=root;
while (true)
{
if(strcmp(ptr->data,ss) == 0)
{
ptr->cnt += 1;
return ;
}
else if (strcmp(ptr->data,ss) > 0)
{
if( !ptr->left )
{
ptr->left=new treenode();
strcpy(ptr->left->data,ss);
return ;
}
else ptr=ptr->left;
}
else
{
if(!ptr->right)
{
ptr->right = new treenode();
strcpy(ptr->right->data,ss);
return ;
}
else ptr=ptr->right;
}
}
return ;
}
void LDR(treenode* ptr)
{
if( ptr != NULL)
{
LDR(ptr->left);
printf("%s %.4lf\n",ptr->data,100*ptr->cnt/n);
LDR(ptr->right);
}
}
二叉排序树的简单实现
最新推荐文章于 2018-06-12 18:57:15 发布