算法导论 第12章思考题 基数树
题目
解决思路:
很显然,这是关于二叉查找树的应用,主要是运用插入和遍历。
关于插入,遍历01字符串,从根节点开始,经过一段时间的插入,现在进行到节点x,如果当前遇到的字符是0,且x的左孩子存在,则直接向左走,否则创建一个新节点成为x的左孩子,然后走到此节点;如果当前遇到的字符是1,且右孩子存在,则直接向右走,否则创建一个新节点成为x的右孩子,然后走到此节点。如此循环之后,如果当前字符恰好为字符串最后一个字符,那么就像给字符串存储到该节点,而之前所有遍历的节点中都存储空字符串。
关于遍历,既然要输出排序结果,根据我们这里的插入方式,需要选择先序遍历了。遍历过程中需要注意,如果遇到的节点存储非空字符串,则输出;否则,跳过。

这篇博客主要讨论了算法导论第12章中的基数树,重点在于基数树的插入操作和排序结果的先序遍历。在插入过程中,通过遍历01字符串并根据字符创建和更新二叉查找树的结构。遍历时,使用先序遍历来输出排序后的结果,遇到非空节点时才输出对应的字符串。文中还提供了基数树的实现代码。

5456

被折叠的 条评论
为什么被折叠?



