289 lines
16 KiB
HTML
289 lines
16 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||
|
<title>CLiki: data structure</title>
|
||
|
<link rel="alternate" type="application/atom+xml" title="ATOM feed of edits to current article"
|
||
|
href="https://www.cliki.net/site/feed/article.atom?title=data%20structure">
|
||
|
<link rel="stylesheet" href="static/css/style.css">
|
||
|
<link rel="stylesheet" href="static/css/colorize.css">
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<span class="hidden">CLiki - data structure</span>
|
||
|
<div id="content"><div id="content-area"><div id="article-title">data structure</div><div id="article">Various data structures.<p>NB: for a good library of general purpose data-structures, I (actually <a href="Fare Rideau.html" class="internal">Fare Rideau</a>) recommend
|
||
|
<a href="cl-containers.html" class="internal">cl-containers</a> if you want stateful (imperative) variants, or <a href="lisp-interface-library.html" class="internal">lisp-interface-library</a> if you want pure (functional) variants. If you implement more data-structures, we recommend you extend their respective interfaces. For more specialized data-structures, read on.<p><ul>
|
||
|
<li>
|
||
|
<a href="access.html" class="internal">access</a> -
|
||
|
Access is a library to ease getting and setting values in nested dictionary-like objects by providing a unified interface to hash-tables, clos-objects, plists and alists
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="array-operations.html" class="internal">array-operations</a> -
|
||
|
Provides commonly used operations on arrays
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="avl-tree.html" class="internal">avl-tree</a> -
|
||
|
AVL (<a href="https://en.wikipedia.org/wiki/AVL_tree">Adelson-Velsky-Landis</a>) Tree is a self-balancing binary search tree implementation in Common Lisp
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="B-Tries.html" class="internal">B-Tries</a> -
|
||
|
An implementation of the <a href="data structure.html" class="category">data structure</a> described in the paper "B-tries for disk-based <a href="string.html" class="category">string</a> management" (<a href="https://people.eng.unimelb.edu.au/jzobel/fulltext/vldbj09.pdf">PDF</a>)
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="binomial-heap.html" class="internal">binomial-heap</a> -
|
||
|
Binomial-heap is an implementation of the <a href="http://en.wikipedia.org/wiki/Binomial_heap">binomial heap</a> <a href="data structure.html" class="category">data structure</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="bk-tree.html" class="internal">bk-tree</a> -
|
||
|
This page is moved to <a href="https://github.com/vy/bk-tree">https://github.com/vy/bk-tree</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="bknr-skip-list.html" class="internal">bknr-skip-list</a> -
|
||
|
An implementation of skip lists for <a href="bknr.html" class="category">bknr</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="BST.html" class="internal">BST</a> -
|
||
|
BST is a Common Lisp library for working with binary search trees that can contain any kind of values
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cacle.html" class="internal">cacle</a> -
|
||
|
<a href="https://github.com/jlahd/cacle">cacle</a> implements an extensible cache <a href="data structure.html" class="category">data structure</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-bloom.html" class="internal">cl-bloom</a> -
|
||
|
Bloom filters in Common Lisp with efficient hashing
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-btree.html" class="internal">cl-btree</a> -
|
||
|
B-Tree implemented in Common Lisp
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-cache-tables.html" class="internal">cl-cache-tables</a> -
|
||
|
cl-cache-tables is a wrapper around native hash-tables to facilitate in-process caching of common lisp data structures
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-competitive.html" class="internal">cl-competitive</a> -
|
||
|
A code collection maintained mainly for competitive programming, and partly for just understanding <a href="algorithm.html" class="category">algorithm</a>s
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-containers.html" class="internal">cl-containers</a> -
|
||
|
<a href="https://github.com/gwkkwg/cl-containers">cl-containers</a> adds binary search trees, red-black trees, sparse arrays, and other useful containers
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-custom-hash-table.html" class="internal">cl-custom-hash-table</a> -
|
||
|
cl-custom-hash-table extends the hash table <a href="data structure.html" class="category">data structure</a> by allowing the use of arbitrary TEST/HASH functions, in addition to the TEST functions allowed by the standard (EQ, EQL, EQUAL and EQUALP)
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-dawg.html" class="internal">cl-dawg</a> -
|
||
|
CL-DAWG is a DoubleArray/DAWG implementation
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-heap.html" class="internal">cl-heap</a> -
|
||
|
CL-HEAP implements the binary heap, Fibonacci heap, and priority queue <a href="data structure.html" class="category">data structure</a>s
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-slice.html" class="internal">cl-slice</a> -
|
||
|
This library was unmaintained for several years
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-speedy-queue.html" class="internal">cl-speedy-queue</a> -
|
||
|
cl-speedy-queue is a portable, non-consing, optimized queue implementation
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-string-match.html" class="internal">cl-string-match</a> -
|
||
|
Provides substring (subsequence) search and text processing algorithms implementations including regular expression, prefix/suffix tree data structures, etc
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="cl-treemaps.html" class="internal">cl-treemaps</a> -
|
||
|
cl-treemaps is a lightweight and fast implementation of binary trees
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="colliflower.html" class="internal">colliflower</a> -
|
||
|
<a href="https://github.com/bytecurry/colliflower">Colliflower</a> is a library for abstaractions around <a href="data structure.html" class="category">data structure</a>s
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="D.html" class="internal">D</a> -
|
||
|
The D Common Lisp library exists to enable using doubly-linked lists in a program using a style which resembles singly-linked lists as closely as reasonable
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="data-table.html" class="internal">data-table</a> -
|
||
|
data-table is a library providing a <a href="data structure.html" class="category">data structure</a> that has rows of data and column names and types (ie database results)
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="dawg.html" class="internal">dawg</a> -
|
||
|
A <a href="https://linux.thai.net/~thep/datrie/datrie.html#Double">DoubleArray</a> / <a href="https://en.wikipedia.org/wiki/Directed_acyclic_word_graph">DAWG</a> implementation
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="dict.html" class="internal">dict</a> -
|
||
|
DICT is a hash table implementation
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="dlist.html" class="internal">dlist</a> -
|
||
|
dlist is a Common Lisp library that implements the doubly-linked list
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="fare-utils.html" class="internal">fare-utils</a> -
|
||
|
fare-utils is a collection of <a href="utilities.html" class="category">utilities</a> from <a href="Fare Rideau.html" class="internal">Fare Rideau</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="fern.html" class="internal">fern</a> -
|
||
|
An efficient, <a href="https://www.cliki.net/site/HyperSpec/Body/fun_consp.html" class="hyperspec">consp</a>, self-adjusting key-value trie-index abstraction for <a href="uuid.html" class="internal">uuid</a> namespaces
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="Flexichain.html" class="internal">Flexichain</a> -
|
||
|
Flexichain is an API for editable sequences
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="folio2.html" class="internal">folio2</a> -
|
||
|
A collection of small libraries: functional idioms and <a href="data structure.html" class="internal">data structure</a>s in Common Lisp and a common set of APIs for them
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="FSet.html" class="internal">FSet</a> -
|
||
|
FSet is a functional set-theoretic collections <a href="data structure.html" class="category">data structure</a> <a href="library.html" class="category">library</a> by Scott L
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="Funds.html" class="internal">Funds</a> -
|
||
|
Funds provides portable, purely functional <a href="data structure.html" class="category">data structure</a>s written in Common Lisp
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="genhash.html" class="internal">genhash</a> -
|
||
|
<a href="https://github.com/pnathan/genhash">NET HEXAPODIA HASHTABLES</a> is a <a href="data structure.html" class="category">data structure</a> library for generic hash tables
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="heap.html" class="internal">heap</a> -
|
||
|
Simple implementation of a <a href="https://en.wikipedia.org/wiki/Binary_heap">binary heap</a> for Common Lisp
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="Heresy.html" class="internal">Heresy</a> -
|
||
|
Heresy is an implementation of the lazy list <a href="data structure.html" class="category">data structure</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="hh-redblack.html" class="internal">hh-redblack</a> -
|
||
|
hh-redblack provides in-memory and disk-based red-black trees
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="jarw-dictionary.html" class="internal">jarw-dictionary</a> -
|
||
|
jarw-dictionary is a generic map/dictionary interface with implementations using internal hash-tables, property lists, files and directories including in-memory caching
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="jpl-queues.html" class="internal">jpl-queues</a> -
|
||
|
<a href="http://www.thoughtcrime.us/software/jpl-queues/">jpl-queues</a> is a <a href="library.html" class="category">library</a> implementing a few different kinds of queue <a href="data structure.html" class="category">data structure</a>s
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="kdtree-jk.html" class="internal">kdtree-jk</a> -
|
||
|
KDTREE-JK is a package for building efficent KD-Trees in Common Lisp
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="lazy.html" class="internal">lazy</a> -
|
||
|
This is a simple lazy form evaluation package for Common Lisp
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="lisp-interface-library.html" class="internal">lisp-interface-library</a> -
|
||
|
lisp-interface-library is a collection of pure and stateful <a href="data structure.html" class="category">data structure</a>s in interface-passing style from <a href="Fare Rideau.html" class="category">Fare Rideau</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="minheap.html" class="internal">minheap</a> -
|
||
|
minheap provides several heap <a href="data structure.html" class="category">data structure</a>s with meldable min-heap and priority queue functionality
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="nary-tree.html" class="internal">nary-tree</a> -
|
||
|
The n-ary-tree package implements an automatically rebalancing B-tree <a href="data structure.html" class="category">data structure</a> which supports n >= 5 items in any mixture of types per node
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="patty.html" class="internal">patty</a> -
|
||
|
Patty is a library that facilitates working with functional <a href="data structure.html" class="category">data structure</a>s on top of CLOS
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="pipes.html" class="internal">pipes</a> -
|
||
|
pipes implements the input stream (lazy list) <a href="data structure.html" class="category">data structure</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="queues.html" class="internal">queues</a> -
|
||
|
A Common Lisp queue library with features such as non-consing <a href="thread.html" class="category">thread</a> safe queues and fibonacci priority queues
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="quick-arrays.html" class="internal">quick-arrays</a> -
|
||
|
<a href="https://sources.debian.org/src/quick-arrays/">quick-arrays</a> is a <a href="Debian package.html" class="category">Debian package</a> of the <a href="Quick Arrays.html" class="internal">Quick Arrays</a> concept
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="Red-Black-trees.html" class="internal">Red-Black-trees</a> -
|
||
|
Red-Black-trees is an implementation of red-black-trees (a <a href="data structure.html" class="category">data structure</a>)
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="ropes.html" class="internal">ropes</a> -
|
||
|
ropes is an implementation of the <a href="https://en.wikipedia.org/wiki/Rope_%28data_structure%29">rope</a> <a href="data structure.html" class="category">data structure</a>, an alternative to strings with more efficient concatenation
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="SEMI-PRECIOUS.html" class="internal">SEMI-PRECIOUS</a> -
|
||
|
SEMI-PRECIOUS is a library of <a href="algorithm.html" class="category">algorithm</a>s/<a href="data structure.html" class="category">data structure</a>s
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="Series.html" class="internal">Series</a> -
|
||
|
A library providing data structure that combines aspects of sequences, (lazy) streams and loops, using a technique known as “fusion” or “deforestation”
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="spatial-trees.html" class="internal">spatial-trees</a> -
|
||
|
spatial-trees is a set of dynamic index <a href="data structure.html" class="category">data structure</a>s for spatially-extended data
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="Sycamore.html" class="internal">Sycamore</a> -
|
||
|
Sycamore implements several purely functional data structures in Common Lisp
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="symbol-namespaces.html" class="internal">symbol-namespaces</a> -
|
||
|
symbol-namespaces defines a new kind of package that's named by a symbol rather than a string
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="TREES.html" class="internal">TREES</a> -
|
||
|
TREES provides several binary tree <a href="data structure.html" class="category">data structure</a>s exposed through a uniform CLOS interface
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="versioned-objects.html" class="internal">versioned-objects</a> -
|
||
|
For any Common Lisp mutable object, allows to store versioning tree of all of the edits connecting its various versions
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="vp-trees.html" class="internal">vp-trees</a> -
|
||
|
<a href="https://github.com/shamazmazum/vp-trees">vp-trees</a> is an implementation of the vantage point tree <a href="data structure.html" class="category">data structure</a> in Common Lisp
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="X.FDATATYPES.html" class="internal">X.FDATATYPES</a> -
|
||
|
XFDATATYPES implements 3 functional <a href="data structure.html" class="category">data structure</a>s:
|
||
|
</li>
|
||
|
</ul></div></div>
|
||
|
<div id="footer" class="buttonbar"><ul><li><a href="data structure.html">Current version</a></li>
|
||
|
<li><a href="https://www.cliki.net/site/history?article=data%20structure">History</a></li>
|
||
|
<li><a href="https://www.cliki.net/site/backlinks?article=data%20structure">Backlinks</a></li><li><a href="https://www.cliki.net/site/edit-article?title=data%20structure&from-revision=3639150799">Edit</a></li><li><a href="https://www.cliki.net/site/edit-article?create=t">Create</a></li></ul></div>
|
||
|
</div>
|
||
|
<div id="header-buttons" class="buttonbar">
|
||
|
<ul>
|
||
|
<li><a href="https://www.cliki.net/">Home</a></li>
|
||
|
<li><a href="https://www.cliki.net/site/recent-changes">Recent Changes</a></li>
|
||
|
<li><a href="CLiki.html">About</a></li>
|
||
|
<li><a href="Text Formatting.html">Text Formatting</a></li>
|
||
|
<li><a href="https://www.cliki.net/site/tools">Tools</a></li>
|
||
|
</ul>
|
||
|
<div id="search">
|
||
|
<form action="https://www.cliki.net/site/search">
|
||
|
<label for="search_query" class="hidden">Search CLiki</label>
|
||
|
<input type="text" name="query" id="search_query" value="" />
|
||
|
<input type="submit" value="search" />
|
||
|
</form>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div id="pageheader">
|
||
|
<div id="header">
|
||
|
<span id="logo">CLiki</span>
|
||
|
<span id="slogan">the common lisp wiki</span>
|
||
|
<div id="login"><form method="post" action="https://www.cliki.net/site/login">
|
||
|
<label for="login_name" class="hidden">Account name</label>
|
||
|
<input type="text" name="name" id="login_name" class="login_input" />
|
||
|
<label for= "login_password" class="hidden">Password</label>
|
||
|
<input type="password" name="password" id="login_password" class="login_input" />
|
||
|
<input type="submit" name="login" value="login" id="login_submit" /><br />
|
||
|
<div id="register"><a href="https://www.cliki.net/site/register">register</a></div>
|
||
|
<input type="submit" name="reset-pw" value="reset password" id="reset_pw" />
|
||
|
</form>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</body></html>
|