disjointset man page on MacOSX

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
MacOSX logo
[printable version]

struct::disjointset(n)	      Tcl Data Structures	struct::disjointset(n)

______________________________________________________________________________

NAME
       struct::disjointset - Disjoint set data structure

SYNOPSIS
       package require Tcl  8.4

       package require struct::disjointset  ?1.0?

       ::struct::disjointset disjointsetName

       disjointsetName option ?arg arg ...?

       disjointsetName add-partition elements

       disjointsetName partitions

       disjointsetName num-partitions

       disjointsetName equal a b

       disjointsetName merge a b

       disjointsetName find e

       disjointsetName destroy

_________________________________________________________________

DESCRIPTION
       This  package provides disjoint sets. An alternative name for this kind
       of structure is merge-find.

       Normally when dealing with sets and their elements the question is  "Is
       this element E contained in this set S?", with both E and S known.

       Here  the  question is "Which of several sets contains the element E?".
       I.e. while the element is known, the set is not, and we wish to find it
       quickly.	 It  is	 not  quite  the inverse of the original question, but
       close.  Another operation which is often	 wanted	 is  that  of  quickly
       merging	two sets into one, with the result still fast for finding ele‐
       ments. Hence the alternative term merge-find for this.

       Why now is this named a disjoint-set ?  Because another way of describ‐
       ing the whole situation is that we have

       ·      a finite set S, containing

       ·      a number of elements E, split into

       ·      a	 set  of  partitions  P.  The latter term applies, because the
	      intersection of each pair P, P' of partitions is empty, with the
	      union of all partitions covering the whole set.

       ·      An  alternative  name  for  the  partitions  would be equvalence
	      classes, and all elements in the same class  are	considered  as
	      equal.

       Here is a pictorial representation of the concepts listed above:

	    +-----------------+ The outer lines are the boundaries of the set S.
	    |		/     | The inner regions delineated by the skewed lines
	    |  *       /   *  | are the partitions P. The *'s denote the elements
	    |	   *  / \     | E in the set, each in a single partition, their
	    |*	     /	 \    | equivalence class.
	    |	    /  *  \   |
	    |	   / *	 /    |
	    | *	  /\  * /     |
	    |	 /  \  /      |
	    |	/    \/	 *    |
	    |  / *    \	      |
	    | /	    *  \      |
	    +-----------------+

       For     more    information    see    http://en.wikipedia.org/wiki/Dis‐
       joint_set_data_structure.

API
       The package exports a single command, ::struct::disjointset. All	 func‐
       tionality  provided  here  can  be reached through a subcommand of this
       command.

       ::struct::disjointset disjointsetName
	      Creates a new disjoint set object with an associated global  Tcl
	      command  whose name is disjointsetName. This command may be used
	      to invoke various operations on the disjointset. It has the fol‐
	      lowing general form:

	      disjointsetName option ?arg arg ...?
		     The  option  and the args determine the exact behavior of
		     the command. The following commands are possible for dis‐
		     jointset objects:

       disjointsetName add-partition elements
	      Creates  a new partition in specified disjoint set, and fills it
	      with the values found in the set of elements. The command	 main‐
	      tains  the  integrity of the disjoint set, i.e. it verifies that
	      none of the elements are already part of the  disjoint  set  and
	      throws an error otherwise.

	      The result of the command is the empty string.

       disjointsetName partitions
	      Returns  the  set of partitions the named disjoint set currently
	      consists of.

       disjointsetName num-partitions
	      Returns the number of partitions the  named  disjoint  set  cur‐
	      rently consists of.

       disjointsetName equal a b
	      Determines  if  the  two	elements  a  and b of the disjoint set
	      belong to the same partition. The result	of  the	 method	 is  a
	      boolean  value,  True  if	 the two elements are contained in the
	      same partition, and False otherwise.

	      An error will be thrown if either a or b are not elements of the
	      disjoint set.

       disjointsetName merge a b
	      Determines  the partitions the elements a and b are contained in
	      and merges them into a single partition.	If  the	 two  elements
	      were  already  contained	in  the	 same  partition  nothing will
	      change.

	      The result of the method is the empty string.

       disjointsetName find e
	      Returns the partition of the disjoint  set  which	 contains  the
	      element e.

       disjointsetName destroy
	      Destroys the disjoint set object and all associated memory.

BUGS, IDEAS, FEEDBACK
       This  document,	and the package it describes, will undoubtedly contain
       bugs and other problems.	 Please report such in the category struct  ::
       disjointset    of    the	   Tcllib    SF	   Trackers    [http://source‐
       forge.net/tracker/?group_id=12883].  Please also report any  ideas  for
       enhancements you may have for either package and/or documentation.

KEYWORDS
       disjoint	 set,  equivalence  class, find, merge find, partition, parti‐
       tioned set, union

CATEGORY
       Data structures

struct				      1.0		struct::disjointset(n)
[top]

List of man pages available for MacOSX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net