Skip to main content

Disjoint set union structure implementation for Python 3.

Project description

DSU - disjoint-set-union

Info

See the disjoint set union data structure description at the link.

This implementation is built on sets and not references to parents. Therefore, the complexity of the operation is different from the article. Also added some useful methods.

Basic methods and their complexity:

  • same O(m) - check items from the same set;
  • union O(m + n) - union sets into one set based on their items;
  • make O(m) - make a new set for an item or separate this item from its set;
  • remove_items O(m) - remove an item from a structure;
  • remove_sets O(m + n) - remove a set from a structure based on its item.

Where:

  • m - number of method parameters (items), usually 1-2;
  • n - number of items in the DSU.

Additional methods allow:

  • get sets based on their items;
  • get all items from sets;
  • get a copy DSU;
  • clear the DSU of all items;
  • check the DSU for emptiness;
  • get number of items;
  • get string representation;
  • compare two structures DSU;
  • check whether an item is contained in one of the sets;
  • get iterator over all items.

Prerequisites

Language version starting from 3.10+

$ python --version
Python 3.10.4

Installation

pip install dsu_data_structure

Usage

Open the folder to view details.

>>> from dsu_data_structure import DSU

>>> dsu = DSU(range(6))
>>> print(dsu)
[{0}, {1}, {2}, {3}, {4}, {5}]

>>> print(dsu.items())
{0, 1, 2, 3, 4, 5}

>>> dsu.union(0, 1, 2, 3)
>>> print(dsu)
[{0, 1, 2, 3}, {4}, {5}]

>>> dsu.same(0, 2)
True
>>> dsu.same(0, 5)
False

>>> dsu.make(0, 10)
>>> print(dsu)
[{0}, {1, 2, 3}, {4}, {5}, {10}]

>>> dsu.remove_items(0, 2)
>>> print(dsu)
[{1, 3}, {4}, {5}, {10}]

>>> dsu.remove_sets(3)
>>> print(dsu)
[{4}, {5}, {10}]

Authors


License

MIT License - see the LICENSE file for details


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsu_data_structure-1.1.1.tar.gz (4.2 kB view details)

Uploaded Source

File details

Details for the file dsu_data_structure-1.1.1.tar.gz.

File metadata

  • Download URL: dsu_data_structure-1.1.1.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.4

File hashes

Hashes for dsu_data_structure-1.1.1.tar.gz
Algorithm Hash digest
SHA256 32dd73f129ef5c16ec8ddccaaa5a5c5860aa761f22a89ee27eee15d527d08206
MD5 87c1dc4764f8f7d3d4f8274d5f9a3662
BLAKE2b-256 0894d25b07dbace7828c477fc6ea532cc9ab1c8cd3c204ecede3f54ca296554a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page