基數樹與二叉查詢樹和trie樹很相似。它像bst一樣是二叉的,向左表示0而不是bst的小於,
而向右則表示1而不是大於。它像trie一樣共享相同的結點來儲存字串中相同的字首,從而
節省了空間,但它不像trie那樣每個結點有很多孩子(可以是26個,表示a到z),它用來處理
只包含0和1的字串。
基數樹和trie都用來儲存和排列字串,那麼現在來看看字典序,關於字典序有兩條規則:
1. 字串長度相同時,從左向右逐個字元比較。如011 < 100。
2. 字串長度不同時,長度長的在字典序中值更大。如100 < 1011。
因此,根結點 < 左子樹結點 < 右子樹結點。
#include #include typedef struct radixnode radixnode;
void radix_insert(radixnode *node, char *str)
else
}node->str = str;
}void radix_preorder_walk(radixnode *node)
}int main(void)
演算法導論 第12章 二叉查詢樹
二叉查詢樹是一種樹資料結構,它與普通的二叉樹最大的不同就是二叉查詢樹滿足乙個性質 對於樹中的任意乙個節點,均有其左子樹中的所有節點的關鍵字值都不大於該節點的關鍵字值,其右子樹中的任意乙個節點的關鍵字值都不小於該節點的關鍵字值。在二叉查詢樹上可以進行搜尋 取最小值 取最大值 取指定節點的前驅 取指定節...
《演算法導論》筆記 第12章 12 1 二叉查詢樹
二叉查詢樹性質 設x為二叉查詢樹中的乙個節點。如果y是x的左子樹中的乙個結點,則key x key y 如果y是x的右子樹中的乙個結點,則key x key y 如果x是一棵包含n個結點的子樹的根,則呼叫inorder tree walk x 過程的時間為 n void inodertreewalk...
演算法導論第12章 二叉搜尋樹
左子樹 根 右子樹 根據二叉樹的基本性質,向左子樹或右子樹遞迴即可 查詢結點x的後繼y分為兩種情況 右結點存在,即只需要找到右子樹中最小的元素就好了 右結點不存在,此時就要向親代查詢,直到找到右上方的親代,此時y是x的最底層祖先,且y的左孩子是x的乙個祖先。迭代演算法 類似於一根小棒在樹中移動,最終...