Provided by: tcllib_1.21+dfsg-1_all bug

NAME

       struct::prioqueue - Create and manipulate prioqueue objects

SYNOPSIS

       package require Tcl  8.2

       package require struct::prioqueue  ?1.4?

       ::struct::prioqueue ?-ascii|-dictionary|-integer|-real? ?prioqueueName?

       prioqueueName option ?arg arg ...?

       prioqueueName clear

       prioqueueName remove item

       prioqueueName destroy

       prioqueueName get ?count?

       prioqueueName peek ?count?

       prioqueueName peekpriority ?count?

       prioqueueName put item prio ?item prio ...?

       prioqueueName size

_________________________________________________________________________________________________

DESCRIPTION

       This package implements a simple priority queue using nested tcl lists.

       The  command  ::struct::prioqueue  creates  a new priority queue with default priority key
       type -integer. This means that keys given to the put subcommand must have this type.

       This also sets the priority ordering. For key types -ascii and  -dictionary  the  data  is
       sorted  in ascending order (as with lsort -increasing), thereas for -integer and -real the
       data is sorted in descending order (as with lsort -decreasing).

       Prioqueue names are unrestricted, but may be recognized as options if no priority type  is
       given.

       ::struct::prioqueue ?-ascii|-dictionary|-integer|-real? ?prioqueueName?
              The  ::struct::prioqueue  command creates a new prioqueue object with an associated
              global Tcl command whose name is prioqueueName. This command may be used to  invoke
              various operations on the prioqueue.  It has the following general form:

       prioqueueName option ?arg arg ...?
              option  and  the  args  determine the exact behavior of the command.  The following
              commands are possible for prioqueue objects:

       prioqueueName clear
              Remove all items from the prioqueue.

       prioqueueName remove item
              Remove the selected item from this priority queue.

       prioqueueName destroy
              Destroy the prioqueue, including its storage space and associated command.

       prioqueueName get ?count?
              Return the front count items of the prioqueue (but not their priorities) and remove
              them from the prioqueue.  If count is not specified, it defaults to 1.  If count is
              1, the result is a simple string; otherwise, it is a  list.   If  specified,  count
              must  be  greater  than  or  equal  to  1.  If there are no or too few items in the
              prioqueue, this command will throw an error.

       prioqueueName peek ?count?
              Return the front count items of the prioqueue (but not their  priorities),  without
              removing them from the prioqueue.  If count is not specified, it defaults to 1.  If
              count is 1, the result is a simple string; otherwise, it is a list.  If  specified,
              count  must be greater than or equal to 1.  If there are no or too few items in the
              queue, this command will throw an error.

       prioqueueName peekpriority ?count?
              Return the front  count  items  priority  keys,  without  removing  them  from  the
              prioqueue.  If count is not specified, it defaults to 1.  If count is 1, the result
              is a simple string; otherwise, it is a list.  If specified, count must  be  greater
              than  or  equal  to 1.  If there are no or too few items in the queue, this command
              will throw an error.

       prioqueueName put item prio ?item prio ...?
              Put the item or items specified into the prioqueue. prio must be a  valid  priority
              key  for this type of prioqueue, otherwise an error is thrown and no item is added.
              Items are inserted at their priority ranking. Items with equal priority  are  added
              in the order they were added.

       prioqueueName size
              Return the number of items in the prioqueue.

BUGS, IDEAS, FEEDBACK

       This  document,  and  the  package  it  describes, will undoubtedly contain bugs and other
       problems.  Please report such in the category struct :: prioqueue 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.

       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.

KEYWORDS

       ordered list, prioqueue, priority queue

CATEGORY

       Data structures

COPYRIGHT

       Copyright (c) 2003 Michael Schlenker <mic42@users.sourceforge.net>