Речник АТД
Log файлове
Нареден речник АТД
Lookup таблици
Двоично търсене
Сравнение на прости реализации на нареден речник АТД
Речник АТД
Function |
Input |
Output |
Description |
size() |
- |
Integer |
Връща броя на елементите на D. |
isEmpty() |
- |
Boolean |
Проверява дали D е празен. |
elements() |
- |
Iterator of objects
(elements) |
Връща елементите, записани в
D. |
keys() |
- |
Iterator of objects (keys) | Връща ключовете, записани в D. |
find(k) |
Object k (key) | Position |
Ако D съдържа член с ключ, равен на k, връща позицията
на този член. Ако не, връща nullposition. |
findAll(k) |
Object k (key) | Iterator of Positions | Връща итератор от позициите
на всички членове, чийто ключове са равни на k. |
insertItem(k,e) |
Objects: k (key) and e (element) | - |
Вмъква двойка с ключ k и елемент e в D. |
removeElement(k) |
Object k (key) |
- |
Премахва член с ключ равен на
k от D. Ако в D няма такъв член се
генерира грешка (error condition). |
removeAllElements(k) |
Object k (key) | - |
Премахва всички двойки с ключове равни на k от D. |
Operation |
Output |
Dictionary |
insertItem(5,A) insertItem(7,B) insertItem(2,C) insertItem(8,D) insertItem(2,E) find(7) find(4) find(2) findAll(2) size() removeElement(5) removeElement(5) removeAllElements(2) find(2) findAll(2) |
- - - - - p(B) "nullposition" p(C) or p(E) p(C),p(E) 5 - "error" - "nullposition" "empty iterator" |
{(5,A)} {(5,A),(7,B)} {(5,A),(7,B),(2,C)} {(5,A),(7,B),(2,C),(8,D)} {(5,A),(7,B),(2,C),(8,D),(2,E)} {(5,A),(7,B),(2,C),(8,D),(2,E)} {(5,A),(7,B),(2,C),(8,D),(2,E)} {(5,A),(7,B),(2,C),(8,D),(2,E)} {(5,A),(7,B),(2,C),(8,D),(2,E)} {(5,A),(7,B),(2,C),(8,D),(2,E)} {(7,B),(2,C),(8,D),(2,E)} {(7,B),(2,C),(8,D),(2,E)} {(7,B),(8,D)} {(7,B),(8,D)} {(7,B),(8,D)} |
Operation |
Input |
Output |
Description |
element() | - |
Object (element) | Връща псевдоним на елемента
от двойката на тази позиция. |
key() | - |
Object (key) | Връща константен псевдоним на ключа от двойката на тази позиция. |
isNull() | - |
Boolean |
Връща true, ако
това е nullposition. |
LINEAR
search with FLAMENCO dance
Пример:
позиции: 0 1 2 3 4 5 6 7 8 9
ключове: 2 3 3 4 4 4 5 7 9 9
closestBefore(5)
-> позиция 6, ключ 5
closestBefore(4) -> позиции 3, 4 или 5, ключ 4
closestBefore(6) -> позиция 6, ключ 5
closestAfter(5)
-> позиция 6,
ключ 5
closestAfter(4)
-> позиции
3, 4 или 5, ключ 4
closestAfter(6)
-> позиция 7, ключ 7
Function |
Log File |
Lookup Table |
size(),
isEmpty() |
O(1) |
O(1) |
keys(),
elements() |
O(n) |
O(n) |
find(key) |
O(n) |
O(log n) |
findAll(key) |
O(n) |
O(log n
+ s) |
insertItem(key,
element) |
O(1) |
O(n) |
removeElement(key) |
O(n) |
O(n) |
removeAllElements(key) |
O(n) | O(n) |