poj[2418] Hardwood Species 二叉搜索树

题目大意:对给定的一些树名进行字典排序并输出所占的比例。

思路不难就是对给定的数进行字典排序,可是如何存储和如何进行排序是解决问题的关键了,这里我们用到一种叫做二叉搜索树的数据结构。

树的节点结构:

 

1 struct BiNode
2 {
3     char Name[50];
4     BiNode *lchild,*rchild;
5     int count;
6 };

 

插入节点的伪代码:

1 judge = strcmp(Name, root->Name);
2 if(judge == 0) 此节点的count++;
3 else if(judge > 0
4     if(左子树存在) 递归遍历左子树
5     else 添加一个左子树节点
6 else if(judge < 0)
7     if(右子树存在) 递归遍历右子树
8     else 添加一个右子树节点

 

建树的过程其实就是一个调用插入函数。

进行一次中序遍历节点输出Name域和所占比例及可。

代码如下:

 

Code

 

 

 

posted on 2009-10-18 12:21  over  阅读(698)  评论(0编辑  收藏  举报