11. Речници - първа част

Речник АТД

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) -
Вмъква двойка с елемент e и ключ k в 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.

Log файлове

Наредени речници

В нареден речник се иска освен обичайните операции за речник, да поддържа и такива, свързани с наредбата на ключовете.

Нареден речник АТД


Нареденият речник поддържа следните функции извън тези, включени в общия речник АТД:
Lookup таблици
Двоично търсене [ООП]

bsearch.cpp

Анализ на двоично търсене

Сравнение на прости реализации на нареден речник АТД

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)
Θ(n)
O(log n + s)
insertItem(key, element)
O(1)
O(n)
removeElement(key)
O(n)
O(n)
removeAllElements()
Θ(n) O(n)