Red/black trees
Devon H. O'Dell
dodell at offmyserver.com
Mon Apr 18 00:39:34 PDT 2005
On Mon, Apr 18, 2005 at 12:14:27AM -0700, Matthew Dillon wrote:
> Skip lists... Well, based on that documentation my first reaction
> is "ick". It looks like a flattened, bastardized n-way tree. Searches
> basically cost the same. Insertions and deletions should theoretically
> be faster, but the trade-off is against additional loss of determinism.
It's a quite interesting ADT that behaves in some ways like a
DAG, as I discovered after discussing it with Daniel Hartmeier.
PF uses skip lists for its ruleset, which behave in a quite
interesting way. In the case that two rules match the same
object, they are compiled in such a way that they will `skip' to
the node containing that check. I found this quite interesting,
because it performs very well in normal case, although it does
have a O(n) performance at worst case.
I've been researching various algorithms for use in packet
classification, which has produced a variety of various papers,
all with interesting discussions.
I've not been following this thread very well, so I'm not sure
what this is for. If the data is random, a skip list probably
wouldn't be great. So, if the rest of this email is off-key,
sorry.
> Degenerate conditions have a way of sneaking up on data structures
> that try to be sneaky. I'd rather have the determinism of a red-black
> tree, frankly.
>
> Patricia trees are basically just radix trees... unsuitable for
> arranging large fixed-length numerical values.
>
> -Matt
I suppose a DAG deserves discussion as well, since it allows for
a good bit of compression since multiple nodes may point to each
other. For instance:
(23)
/ \
(15)--(19)
/ / \
\ / (12)
(11)----/ /
\ /
\ /
\ /
(10)
This graph has no real life purpose, but perhaps shows how such a
diagram could be compressed. The same thing as a binary tree
might look like:
(23)
/ \
/ (19)
/ / \
(15) (11) (12)
/ \ / \
(11) (19) (11) (10)
I'm sure there's a better way to order or balance this tree.
Anyway, hope this isn't too off topic.
--Devon
Attachment:
pgp00013.pgp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgp00013.pgp
Type: application/octet-stream
Size: 187 bytes
Desc: "Description: PGP signature"
URL: <http://lists.dragonflybsd.org/pipermail/kernel/attachments/20050418/c3fed49a/attachment-0020.obj>
More information about the Kernel
mailing list