字典樹Trie使用數值作為KEY

2021-09-02 01:26:30 字數 1185 閱讀 2626

字典樹的資料結構我就不作描述了,網上的trie演算法基本上都是基本字串作為key的,字串作為key每個子節點占用26 * 4個位元組,對於資料量不大的情況效果不錯,但對於大量資料占用記憶體空間消耗比較大,而使用數值作為key的話每個節點僅點10 * 4個位元組,相對於字串來說浪費的空間得到很大改善了。直接上**!

template class ctrie

} };

protected:

node * m_root;

size_t m_size;

public:

ctrie()

~ctrie()

//插入鍵值

void insert(dword dwkey, const type &val)

node = node->childs[index];

dwkey /= 10;

} while (dwkey > 0);

node->isleaf = true;

node->val = val;

m_size++;

} //鍵值查詢

bool find(dword dwkey, type &val)

while (dwkey > 0 && node);

if (node)

return false;

} //移除鍵值

void erase(dword dwkey)

while (dwkey > 0 && node);

if (node)}}

delete node;

}else

node = parent;

} while (node);

} }size_t size()

bool empty()

void clear()

}m_size = 0;

}private:

bool haschild(node *node)

}return false;

} void removechild(node *node)

delete node;

} //反序key

dword reversekey(dword dwkey)

while (dwkey > 0);

return dwvalue;

}};

Trie樹(字典樹)

trie樹的核心思想是用空間換時間,通過在樹中儲存字串的公共字首,來達到加速檢索的目的。例如,對於一棵儲存由英文本母組成的字串的trie樹,如下圖 trie樹在實現的時候,可以用左兒子右兄弟的表示方法,也可以在每個節點處開設乙個陣列,如上圖的方法。trie樹的主要操作是插入 查詢,也可以進行刪除。插...

字典樹 Trie樹

字典樹 trie樹 顧名思義是一種樹形結構,屬於雜湊樹的一種。應用於統計 排序 查詢單詞 統計單詞出現的頻率等。它的優點是 利用字串的公共字首來節約儲存空間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。字典樹的結構特點 根節點不代表任何字元。其他節點從當前節點回溯到根節點可以得到它代表的字串。...

字典樹 trie樹

amy 56 ann 15 emma 30 rob 27 roger 52首先存入amy,level 0表示根,不持有資料。其餘每個節點持有乙個字元 葉子節點持有資料,且持有的字元為 0 level 0 root a level 1 m level 2 y level 3 0 56 level 4新...