A free Windows-compatible Operating System - mirrored from GitHub
Go to file
Colin Finck 86ad9580b1 [SKIPLIST]
Add my implementation of an efficient Skiplist. A Skiplist can do insertion, deletion and lookups in O(log N) on average just like balanced trees.
It features simpler algorithms though due to purely relying on probabilistic balancing at insertion and not on rebalancing with every modification.

This simple structure allowed me to implement some additions on top of the standard algorithms:
* Storing distances between elements on each level to efficiently return the index of the element in the Skiplist when doing a lookup.
* InsertTailElementSkiplist to explicitly insert an element at the end of the Skiplist.
  This needs no comparisons and is useful when you can be sure that the new element would be inserted at the end (e.g. for a new print job in the queue with default priority).

More features are easily possible, but for now I limited features on those needed for my Local Spooler work.

Some references on Skiplists:
* ftp://ftp.cs.umd.edu/pub/skipLists/skiplists.pdf
* http://drum.lib.umd.edu/bitstream/1903/544/2/CS-TR-2286.1.pdf

svn path=/branches/colins-printing-for-freedom/; revision=68191
2015-06-19 10:27:46 +00:00
reactos [SKIPLIST] 2015-06-19 10:27:46 +00:00
rosapps [CYLFRAC] Change to use scrnsave library. Tidy up all now useless stuff. Tabs -> spaces. Single language link in support added. Noticable change: Multi Monitor support! 2015-04-27 17:25:42 +00:00
rossubsys Resuscitate VMS subsystem (yeah, you've correctly read: VMS!!) from revision 24496. 2014-11-23 15:24:49 +00:00
rostests [LOCALSPL_APITEST] 2015-06-10 21:49:49 +00:00
wallpapers Rename 'wallpaper' repo to 'wallpapers' (since it doesn't contain only 1 wallpaper :p ) 2015-03-15 16:06:50 +00:00