代码改变世界

随笔档案-2012年3月25日

《算法导论》第12章 二叉查找树 (3)基数树

2012-03-25 13:38 by java线程例子, 320 阅读, 收藏,
摘要: 基数树与二叉查找树和Trie树很相似。它像BST一样是二叉的,向左表示0而不是BST的小于,而向右则表示1而不是大于。它像Trie一样共享相同的结点来保存字符串中相同的前缀,从而节省了空间,但它不像Trie那样每个结点有很多孩子(可以是26个,表示a到z),它用来处理只包含0和1的字符串。基数树和Trie都用来保存和排列字符串,那么现在来看看字典序,关于字典序有两条规则:1. 字符串长度相同时,从左向右逐个字符比较。如011 < 100。2. 字符串长度不同时,长度长的在字典序中值更大。如100 < 1011。因此,根结点 < 左子树结点 < 右子树结点。#includ 阅读全文

《算法导论》第12章 二叉查找树 (2)查找、插入与删除

2012-03-25 11:48 by java线程例子, 191 阅读, 收藏,
摘要: 1. 查找利用二叉查找树左小右大的性质,可以很容易实现查找任意值和最大/小值。BSTNode * bst_search(BSTNode *node, int key) { while (node && key != node->key) { if (key < node->key) node = node->left; else node = node->right; } return node; } BSTNode * bst_minimum(BSTNode *... 阅读全文