• Tidak ada hasil yang ditemukan

Fundamental Data Types: String, Math, Casting 1 Struktur Data & Algoritme

N/A
N/A
Protected

Academic year: 2024

Membagikan "Fundamental Data Types: String, Math, Casting 1 Struktur Data & Algoritme "

Copied!
2
0
0

Teks penuh

(1)

Fundamental Data Types: String, Math, Casting 1 Struktur Data & Algoritme

(

Data Structures & Algorithms

)

Fakultas Ilmu Komputer Universitas Indonesia Semester Ganjil - 2006/2007

Version 1.0 - Internal Use Only

Suryana Setiawan[email protected]

Trie

SDA/TRIE/SUR/V1.0/2

„ A trie, or prefix tree, is an ordered tree data structurethat is used to store an associative arraywhere the keys are strings.

Unlike a binary search tree, no node in the tree stores the key associated with that node; instead, its position in the tree shows what key it is associated with. All the descendants of any one node have a common prefix of the string associated with that node, and the root is associated with the empty string.

„ Values are normally not associated with every node, only with leaves and some inner nodes that happen to correspond to keys of interest.

„ The term trie comes from "retrieval".

„ Due to this etymologyit is pronounced "tree", although some encourage the use of "try" in order to distinguish it from the more general tree.

SDA/TRIE/SUR/V1.0/3

Example

„ A trie for keys "to", "tea",

"ten", "i", "in", and "inn".

„ In the example shown, keys are listed in the nodes and values below them.

„ Each complete English word has an integer value

associated with it.

SDA/TRIE/SUR/V1.0/4

Advantages relative to BST

„ Looking up a key of length m takes worst case O(m) time while a BST takes O(logn) time, where n is the number of elements.

„ During lookup, tries use such as array indexing using a character, are fast on real machines.

„ Tries can require less space when they contain a large number of short strings, because the keys are not stored explicitly and nodes are shared between keys.

„ Tries help with longest-prefix matching, where we wish to find the key sharing the longest possible prefix with a given key efficiently.

„ There is no need to keep a trie balanced.

(2)

Fundamental Data Types: String, Math, Casting 2

SDA/TRIE/SUR/V1.0/5

Disadvantages

„ Tries can give an ordering of the keys, but it must correspond to lexicographic ordering.

„ Tries can be considerably larger in certain circumstances, such as a trie containing a small number of very long strings (Patricia trieshelp to deal with this).

„ Trie algorithms are more complex than simple BSTs.

„ It is not always easy to represent data as strings, e.g.

complex objects or floating-point numbers.

SDA/TRIE/SUR/V1.0/6

„ Tries are most useful when the keys are of varying lengths and we expect some key lookups to fail, because the key is not present.

„ If we have fixed-length keys, and expect all lookups to succeed, then we can improve key lookup by combining every node with a single child (such as "i"

and "in" above) with its child, producing a Patricia trie.

SDA/TRIE/SUR/V1.0/7

Applications

„ As replacement of other data structures

„ Dictionary representation

„ Sorting

SDA/TRIE/SUR/V1.0/8

Patricia Trie

„ A Patricia trie or a radix tree or crit bit tree is a specialized set data structurebased on the triethat is used to store a set of strings.

„ Donald R. Morrisonfirst described what he called

"Patricia tries" in 1968

„ PATRICIA stands for "Practical Algorithm to Retrieve Information Coded in Alphanumeric".

„ Gernot Gwehenberger independently invented and described the data structure at about the same time.

„ These can be strings of characters, bit strings such as integers or IP addresses, or generally arbitrary sequences of objects in lexicographical order.

Referensi

Dokumen terkait