Skip to content

mifril/persistent-data-structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 

Repository files navigation

Persistent data structures

Base classes

  • PersistentVector<T>
  • PersistentList<T>
  • PersistentMap<K, V, Comparator>

Additional classes

  • PersistentAVLTree<K, V, Comparator>
  • VersionTree. insertAfter(p, q) complexity: O(log k); order(p, q) complexity: O(1)

Algorithms

Let n is number of elements in data structure, k - number of versions.

  • PersistentVector: fat-node realization, read: O(log k), write: O(log k), memory: O(kn).
  • PersistentList: Path Copying algorithm, read: O(1), insert to front: O(1), insert to random place: O(n), memory: O(kn).
  • PersistentMap: based on PersistentAVLTree, implemented using Path Copying algorithm, read/write: O(log n), memory: O(kn).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published