Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства для  версии 10.9 Mac OS X

Если Вы выполняете различную версию  Mac OS X, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



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 elements. Hence the alternative term merge-find for
       this.

       Why now is this named a disjoint-set ?  Because another way of describing 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/Disjoint_set_data_structure.

API
       The  package  exports a single command, ::struct::disjointset. All functionality 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  dis-jointsetName. disjointsetName.
              jointsetName. This command may be used to invoke various operations on the disjointset. It has
              the following general form:

              disjointsetName option ?arg arg ...?
                     The option and the args determine the exact behavior of the command. The following com-mands commands
                     mands are possible for disjointset 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 maintains 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 currently 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, partitioned set, union

CATEGORY
       Data structures



struct                                               1.0                              struct::disjointset(n)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации к проекту Tcl.
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API к Apple через Генератор отчетов Ошибки и к проекту Tcl через их страницу создания отчетов ошибки.
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.