資料結構之Tire樹

2021-08-19 19:27:54 字數 1034 閱讀 8179

也叫字典樹

又稱單詞查詢樹 是一種樹形結構,是一種雜湊樹的變種。

典型應用是用於統計,排序和儲存大量的字串(但不僅限於字串),

所以經常被搜尋引擎系統用於文字詞頻統計。

它的優點是:利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊樹高。

根節點不包含字元,除根節點外每乙個節點都只包含乙個字元。

從根節點到某一節點,路徑上經過的字元連線起來,為該節點對應的字串。

每個節點的所有子節點包含的字元都不相同。

一般來說max是26 因為26個英文本母唄

next是表示每層有多少種類的數,如果只是小寫字母,則26即可,若改為大小寫字母,則是52,若再加上數字,

則是62了,這裡根 據題意來確定。

typedef

struct trienode //trie結點宣告

trie;

查詢、插入和刪除 刪除比較少見

4.1 建立

考察字串的第乙個字母

順著字典樹的相應路徑走 例如是a則走第一條路徑 c就第三條這樣的 可以利用 *p-『a』 獲取這個字元位於第幾個子節點

如果沒有就建立

每個字典樹的用法和定義均是根據自己情況定義 懂這個思想就行了 不用太拘泥於我這個

4.2 查詢

查詢就是按字首乙個個查,查到了就接著查、。。

每次從根結點開始進行搜尋;

迭代上面的過程

直到在某個結點處

如果最後有個字母查到,則返回這個節點的資訊

如果最後這個節點沒有任何資訊 則返回查詢失敗

4.3 刪除

有些題目,資料比較大,需要查詢完之後釋放記憶體

刪除演算法 採用遞迴演算法

void del(node *root)

資料結構之 樹

1.雙親表示法 下標 資料 parentid 2.孩子表示法 data child1 child2 child3 3.雙親孩子表示法 下標 parentid firstchildid secondchildid 節點 下標 next 頁的話next應該是null 4.孩子兄弟表示法 data 第一次...

資料結構之樹

一 樹的基本概念 樹 tree 是元素的集合,樹有多個節點可以儲存元素 二 二叉樹 每個節點最多有兩個子節點的樹稱為二叉樹 常用來做二分查詢 binary search 等 三 b樹 即二叉搜尋樹 binary search tree 是一種特殊形態的二叉樹 1 所有節點最多擁有2個子節點 2 所有...

資料結構之樹

樹是節點的有限集合.度 a的度是3 b的度是2 d的度是2 c的度為0 當前節點的直接分支 葉子 終端節點就是葉子 e f g h c 根 非終端節點就是根 a b d 有序樹 如果e f不可以隨意換順序 就是有序樹 無序樹 如果 e f可以隨意換順序而且不影響邏輯 祖先 對e來說 b,a都是祖先 ...