dsa.hashset API documentation

# dsa.hashset

Module containing a HashSet class implemented using HashTable.

View Source

     1""" Module containing a HashSet class implemented using HashTable. """
     2from dsa.hashtable import HashTable
     3
     4class HashSet:
     5    """
     6    A set implementation using a hash table for storage.
     7    """
     8    def __init__(self, iterable=None):
     9        """
    10        Initialize a hash set.
    11
    12        Args:
    13            iterable: An optional iterable of initial elements.
    14        """
    15        self._table = HashTable()
    16        if iterable:
    17            for item in iterable:
    18                self.add(item)
    19
    20    def add(self, item):
    21        """
    22        Add an item to the set.
    23
    24        args:
    25            item: The item to add.
    26        """
    27        self._table[item] = True
    28
    29    def remove(self, item):
    30        """
    31        Remove an item from the set.
    32
    33        Args:
    34            item: The item to remove.
    35        """
    36        del self._table[item]
    37
    38    def contains(self, item):
    39        """
    40        Check if an item is in the set.
    41
    42        Args:
    43            item: The item to check.
    44        """
    45        return item in self._table
    46
    47    def __contains__(self, item):
    48        """
    49        Check if an item is in the set.
    50
    51        Args:
    52            item: The item to check.
    53
    54        Returns:
    55            bool: True if the item is in the set, False otherwise.
    56        """
    57        return self.contains(item)
    58
    59    def __len__(self):
    60        """
    61        Get the number of items in the set.
    62
    63        Returns:
    64            int: The number of items in the set.
    65        """
    66        return len(self._table)
    67
    68    def __iter__(self):
    69        """
    70        Iterate over the items in the set.
    71
    72        Yields:
    73            The items in the set.
    74        """
    75        for key in self._table:
    76            yield key
    77
    78    def __repr__(self):
    79        """
    80        Get a string representation of the set.
    81
    82        Returns:
    83            str: A string representation of the set.
    84        """
    85        return f"HashSet({list(self)})"
    86
    87    def __eq__(self, other):
    88        """
    89        Check if two sets are equal.
    90
    91        Args:
    92            other: The other set to compare.
    93
    94        Returns:
    95            bool: True if the sets are equal, False otherwise.
    96        """
    97        if not isinstance(other, HashSet):
    98            return False
    99        return set(self) == set(other)

class HashSet: View Source

      5class HashSet:
      6    """
      7    A set implementation using a hash table for storage.
      8    """
      9    def __init__(self, iterable=None):
     10        """
     11        Initialize a hash set.
     12
     13        Args:
     14            iterable: An optional iterable of initial elements.
     15        """
     16        self._table = HashTable()
     17        if iterable:
     18            for item in iterable:
     19                self.add(item)
     20
     21    def add(self, item):
     22        """
     23        Add an item to the set.
     24
     25        args:
     26            item: The item to add.
     27        """
     28        self._table[item] = True
     29
     30    def remove(self, item):
     31        """
     32        Remove an item from the set.
     33
     34        Args:
     35            item: The item to remove.
     36        """
     37        del self._table[item]
     38
     39    def contains(self, item):
     40        """
     41        Check if an item is in the set.
     42
     43        Args:
     44            item: The item to check.
     45        """
     46        return item in self._table
     47
     48    def __contains__(self, item):
     49        """
     50        Check if an item is in the set.
     51
     52        Args:
     53            item: The item to check.
     54
     55        Returns:
     56            bool: True if the item is in the set, False otherwise.
     57        """
     58        return self.contains(item)
     59
     60    def __len__(self):
     61        """
     62        Get the number of items in the set.
     63
     64        Returns:
     65            int: The number of items in the set.
     66        """
     67        return len(self._table)
     68
     69    def __iter__(self):
     70        """
     71        Iterate over the items in the set.
     72
     73        Yields:
     74            The items in the set.
     75        """
     76        for key in self._table:
     77            yield key
     78
     79    def __repr__(self):
     80        """
     81        Get a string representation of the set.
     82
     83        Returns:
     84            str: A string representation of the set.
     85        """
     86        return f"HashSet({list(self)})"
     87
     88    def __eq__(self, other):
     89        """
     90        Check if two sets are equal.
     91
     92        Args:
     93            other: The other set to compare.
     94
     95        Returns:
     96            bool: True if the sets are equal, False otherwise.
     97        """
     98        if not isinstance(other, HashSet):
     99            return False
    100        return set(self) == set(other)

A set implementation using a hash table for storage.

HashSet(iterable=None) View Source

     9    def __init__(self, iterable=None):
    10        """
    11        Initialize a hash set.
    12
    13        Args:
    14            iterable: An optional iterable of initial elements.
    15        """
    16        self._table = HashTable()
    17        if iterable:
    18            for item in iterable:
    19                self.add(item)

Initialize a hash set.

Args: iterable: An optional iterable of initial elements.

def add(self, item): View Source

    21    def add(self, item):
    22        """
    23        Add an item to the set.
    24
    25        args:
    26            item: The item to add.
    27        """
    28        self._table[item] = True

Add an item to the set.

args: item: The item to add.

def remove(self, item): View Source

    30    def remove(self, item):
    31        """
    32        Remove an item from the set.
    33
    34        Args:
    35            item: The item to remove.
    36        """
    37        del self._table[item]

Remove an item from the set.

Args: item: The item to remove.

def contains(self, item): View Source

    39    def contains(self, item):
    40        """
    41        Check if an item is in the set.
    42
    43        Args:
    44            item: The item to check.
    45        """
    46        return item in self._table

Check if an item is in the set.

Args: item: The item to check.