|
ActiveTcl User Guide
|
|
|
[ Main table Of Contents | Tcllib Table Of Contents | Tcllib Index ]
prioqueue(n) 1.3 "Tcl Data Structures"
prioqueue - Create and manipulate prioqueue objects
package require Tcl 8.2
package require struct ?1.3?
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 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.
ordered list , prioqueue , priority queue
Copyright © 2003 Michael Schlenker
<mic42@users.sourceforge.net>