struct::skiplist(3tcl)
β¨ struct::skiplist β¨
okay so bestie, welcome to struct::skiplist, straight out of the Tcl Data Structures manual section (that's the manual name, iykyk π
). she's a lil Tcl package, she makes skiplists, and honestly? she's iconic for it.
πΈ NAME πΈ
struct::skiplist β create and manipulate skiplists π
π SYNOPSIS π
package require Tcl 8.5 9
package require struct::skiplist ?1.4?
skiplistName option ?arg arg ...?
skiplistName delete node ?node...?
skiplistName destroy
skiplistName insert key value
skiplistName search node ?-key key?
skiplistName size
skiplistName walk cmd
π¦ DESCRIPTION π¦
So the ::struct::skiplist command creates a brand new skiplist object, and it comes with a global Tcl command attached to it whose name is skiplistName. That command is literally how you talk to your skiplist and make it do stuff. The general shape of it is this:
skiplistName option ?arg arg ...?
Option and the args are what decide the exact behavior of the command. no cap.
Skip lists are the alternative data structure to binary trees, and ngl they're kind of the moment. They can be used to maintain ordered lists over any sequence of insertions and deletions. Skip lists use randomness to achieve probabilistic balancing, and because of that, the algorithms for insertion and deletion in skip lists are much simpler and faster than those for binary trees. slay.
If you wanna read more about skip lists, see Pugh, William. Skip lists: a probabilistic alternative to balanced trees In: Communications of the ACM, June 1990, 33(6) 668-676. π
Currently, the key can be either a number or a string, and comparisons are performed with the built in greater than operator. That's just how she operates. The following commands are possible for skiplist objects:
skiplistName delete node ?node...?β Remove the specified nodes from the skiplist. bye bestie πskiplistName destroyβ Destroy the skiplist, including its storage space and associated command. it's giving full send, nothing left behind πskiplistName insert key valueβ Insert a node with the given key and value into the skiplist. If a node with that key already exists, then the that node's value is updated and its node level is returned. Otherwise a new node is created and0is returned. (yes, "the that node's value" β the original said it, and I am a faithful queen π«Ά)skiplistName search node ?-key key?β Search for a given key in a skiplist. If not found then0is returned. If found, then a two element list of1followed by the node's value is retuned. πskiplistName sizeβ Return a count of the number of nodes in the skiplist. how many besties are in the group chat πskiplistName walk cmdβ Walk the skiplist from the first node to the last. At each node, the commandcmdwill be evaluated with the key and value of the current node appended. lil stroll through the whole vibe πΆβοΈβ¨
π BUGS, IDEAS, FEEDBACK π
Okay real talk: this document, and the package it describes, will undoubtedly contain bugs and other problems. π Please report such in the category struct :: skiplist of the Tcllib Trackers [http://core.tcl.tk/tcllib/reportlist]. Please also report any ideas for enhancements you may have for either package and/or documentation. we love feedback, fr fr.
When proposing code changes, please provide unified diffs, i.e the output of diff -u.
Note further that attachments are strongly preferred over inlined patches. Attachments can be made by going to the Edit form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar. (that's the left-most one. the leftiest. π)
β KEYWORDS β
skiplist
π CATEGORY π
Data structures
π COPYRIGHT π
Copyright (c) 2000 Keith Vetter
and that's the whole page bestie, no notes π
this little manual came to you from tcllib, version 1.4, dated struct::skiplist(3tcl) β periodt. πβ¨π¦
π¦ where this page comes from
- debian trixie: tcllib 2.0+dfsg-4 Β· Tcl
- ubuntu questing: tcllib 2.0+dfsg-4
- ubuntu resolute: tcllib 2.0+dfsg-5 Β· Tcl
- ubuntu stonking: tcllib 2.0+dfsg-6 Β· Tcl
- Copyright (c) 2000 Keith Vetter
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms