题意就是输入几组字符串,按照字典顺序输出,并且输出每个字符串在总字符串中的比例。由于题目中处理了大量的字符串,这里采用了二叉查找树
(BST)
来解决本题。
二叉查找树
(BST)
也称为二叉搜索树,二叉查找树或者是一棵空树,或者是具有下列性质的二叉树:
1、每个结点都有一个作为查找依据的关键码 (key) 。
2、左子树 ( 如果存在 ) 上所有结点的关键码都小于等于根结点的关键码。
3、右子树 ( 如果存在 ) 上所有结点的关键码都大于等于根结点的关键码。
4、左子树和右子树也是二叉查找树。
1、每个结点都有一个作为查找依据的关键码 (key) 。
2、左子树 ( 如果存在 ) 上所有结点的关键码都小于等于根结点的关键码。
3、右子树 ( 如果存在 ) 上所有结点的关键码都大于等于根结点的关键码。
4、左子树和右子树也是二叉查找树。
关于二叉查找树
(BST)
,算法导论
12
章讲的很清楚。
本题的具体过程是
:
建立二叉查找树,向树中加入结点,其中每个结点有一个
name
,一个
times(
出现的次数
),
还有指向左孩子,右孩子的指针,向二叉查找树插入元素,如果没有该元素就加入,否则就对
times
加一,最后中序遍历,中序遍历的结果即是排好序的结果,同时输出占总数的百分比。