Mission Base

Program Base Library

pblSet - Set Implementation

Set in C, C hash set, C-HashSet, hash set in C, HashSet in C, C tree set, C-TreeSet, tree set in C, TreeSet in C.


Documentation

Open source C implementation of a collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2). This C implementation is similar to the Java Set interface.

This implementations of sets do not allow NULL elements.

As implied by its name, this module models the mathematical set abstraction and allows very efficient access to their elements.

The Set module provides two implementations of sets, an open source C hash set implementation equivalent to the Java HashSet class and a sorted open source C avl-tree-based balanced tree set implementation equivalent to the Java TreeSet class.

Hash sets make no guarantees as to the iteration order of the set; in particular, they do not guarantee that the order will remain constant over time. Hash sets offer constant time performance for the basic operations (add, remove, contains and size), assuming the hash function disperses the elements properly among the buckets. Iterating over hash sets requires time proportional to the sum of the hash set instance's size (the number of elements) plus the "capacity" of the set (the number of buckets). Thus, it's very important not to set the initial capacity too high (or the load factor too low) if iteration performance is important.

Tree sets being sorted guarantee that the set can be iterated in ascending element order, according to the compare function specified for the set. The implementation provides guaranteed log(n) time cost for the basic operations (add, remove and contains). Iterating over tree sets requires time proportional to the tree set instance's size.

The user can also access elements by their integer index (position in the set). From a performance standpoint, these methods should be used with caution. They will perform costly linear searches. Thus, iterating over the elements in a set is preferable to indexing through it.

The Set module provides an iterator, called a pblIterator, that allows bidirectional access in addition to the normal operations iterators provide.

All set functions described below work on hash sets as well as on tree sets, they of course will show different runtime and memory complexities depending on the type of set used.


Constructors and Destructors

  • pblSetNewHashSet Creates a new hash set.
  • pblSetNewTreeSet Creates a new tree set.
  • pblSetClone Returns a shallow copy of this set instance.
  • pblSetCloneRange Returns a shallow copy from this set of all of the elements whose index is between fromIndex, inclusive and toIndex, exclusive.
  • pblSetFree Free the set's memory from heap.

    Adding to a Set

  • pblSetAdd Adds the specified element to this set.
  • pblSetAddAll Adds all of the elements in the specified Collection to this set.
  • pblSetReplaceElement Replaces the element of the set that matches the given element with the given element.

    Accessing Set Elements

  • pblSetContains Returns true if this set contains the specified element.
  • pblSetContainsAll Returns a value > 0 if this set contains all of the elements in the specified collection.
  • pblSetElement Retrieves, but does not remove, the head (first element) of this set.
  • pblSetGet Returns the element at the specified position in this set.
  • pblSetGetElement Returns the element of this set that matches the given element.
  • pblSetGetFirst Returns the first element in this set.
  • pblSetGetLast Returns the last element in this set.
  • pblSetHead Retrieves, but does not remove, the head (first element) of this set.
  • pblSetIndexOf Returns the index of the given argument in the set.
  • pblSetLastIndexOf Returns the index of the given argument in the set.
  • pblSetPeek Retrieves, but does not remove, the head (first element) of this set.
  • pblSetTail Retrieves, but does not remove, the tail (last element) of this set.
  • pblSetTop Retrieves, but does not remove, the tail (last element) of this set.

    Mathematical Set Functions

  • pblSetContains Returns true if this set contains the specified element.
  • pblSetContainsAll Returns a value > 0 if this set contains all of the elements in the specified collection.
  • pblSetDifference Creates a new set containing the difference of the elements of the two sets passed as parameters.
  • pblSetEquals Compares the specified collection with this set for equality.
  • pblSetIntersection Creates a new set containing the intersection of the elements of the two sets passed as parameters.
  • pblSetIsEmpty Tests if this set has no elements.
  • pblSetIsSubset Returns a value > 0 if the set passed as second parameter is a subset of the set passed as first parameter, ie.
  • pblSetSize Returns the number of elements in this set.
  • pblSetSymmectricDifference Creates a new set containing all elements of the two sets passed as parameters that are contained in either of the sets but not in both of them.
  • pblSetUnion Creates a new set containing the union of the elements of both sets passed as parameters.

    Removing from a Set

  • pblSetPoll Retrieves and removes the head (first element) of this set.
  • pblSetPop Retrieves and removes the tail (last element) of this set.
  • pblSetRemove Retrieves and removes the head (first element) of this set.
  • pblSetRemoveAll Removes from this set all of its elements that are contained in the specified collection.
  • pblSetRemoveAt Removes the element at the specified position in this set.
  • pblSetRemoveElement Removes the specified element from this set if it is present.
  • pblSetRemoveFirst Removes and returns the first element in this set.
  • pblSetRemoveLast Removes and returns the last element of this set.
  • pblSetRetainAll Retains only the elements in this set that are contained in the specified collection.

    Functions on Sets

  • pblSetByteBufferHashValue Creates a hash value of byte buffer and its length.
  • pblSetClear Removes all of the elements from this set.
  • pblSetDefaultCompare Default compare function used if no application specific compare function is specified by the user.
  • pblSetDefaultHashValue Default hash value function used if no application specific function is specified by the user.
  • pblSetEnsureCapacity Increases the capacity of this set instance, if necessary.
  • pblSetEquals Compares the specified collection with this set for equality.
  • pblSetFree Free the set's memory from heap.
  • pblSetGetCapacity Returns the capacity of this set instance.
  • pblSetGetCompareFunction Gets the application specific compare function for the elements of the set.
  • pblSetGetHashValueFunction Gets the application specific hash value function for the elements of the set.
  • pblSetIsHashSet Tests if the object is a hash set.
  • pblSetIsSet Tests if the object is a set.
  • pblSetIsTreeSet Tests if the object is a tree set.
  • pblSetIterator Returns an iterator over the elements in this set.
  • pblSetReverseIterator Returns a reverse iterator over the elements in this set.
  • pblSetSetCompareFunction Sets an application specific compare function for the elements of the set.
  • pblSetSetHashValueFunction Sets an application specific hash value function for the elements of the hash set.
  • pblSetSetLoadFactor Sets an application specific load factor for a hash set.
  • pblSetSize Returns the number of elements in this set.
  • pblSetStringHashValue Creates a hash value of a '\0' terminated string.
  • pblSetToArray Returns an array containing all of the elements in this set.
  • pblSetTrimToSize Trims the capacity of this set instance to the set's current size divided by the load factor of the set.

    Collection Functions

    Each pblSet is also a pblCollection, therefore all collection functions can be used on sets.

  • pblCollectionAggregate Aggregates a collection by calling the aggregation function on every element of the collection while running through the collection with an iterator.
  • pblCollectionContains Returns true if this collection contains the specified element.
  • pblCollectionConvertToArrayList Returns a pblArrayList with a shallow copy of this collection instance.
  • pblCollectionConvertToHashSet Returns a pblHashSet with a shallow copy of this collection instance.
  • pblCollectionConvertToLinkedList Returns a pblLinkedList with a shallow copy of this collection instance.
  • pblCollectionConvertToTreeSet Returns a pblTreeSet with a shallow copy of this collection instance.
  • pblCollectionElementCompare Compare two elements of a collection.
  • pblCollectionIsCollection Tests if the object is a collection.
  • pblCollectionSetCompareFunction Sets an application specific compare function for the elements of the collection.
  • pblCollectionStringCompareFunction Compares two '\0' terminated strings.

    Alphabetic List of Set Functions

  • pblSetAdd Adds the specified element to this set.
  • pblSetAddAll Adds all of the elements in the specified Collection to this set.
  • pblSetByteBufferHashValue Creates a hash value of byte buffer and its length.
  • pblSetClear Removes all of the elements from this set.
  • pblSetClone Returns a shallow copy of this set instance.
  • pblSetCloneRange Returns a shallow copy from this set of all of the elements whose index is between fromIndex, inclusive and toIndex, exclusive.
  • pblSetContains Returns true if this set contains the specified element.
  • pblSetContainsAll Returns a value > 0 if this set contains all of the elements in the specified collection.
  • pblSetDefaultHashValue Default hash value function used if no application specific function is specified by the user.
  • pblSetDifference Creates a new set containing the difference of the elements of the two sets passed as parameters.
  • pblSetElement Retrieves, but does not remove, the head (first element) of this set.
  • pblSetEnsureCapacity Increases the capacity of this set instance, if necessary.
  • pblSetEquals Compares the specified collection with this set for equality.
  • pblSetFree Free the set's memory from heap.
  • pblSetGet Returns the element at the specified position in this set.
  • pblSetGetCapacity Returns the capacity of this set instance.
  • pblSetGetCompareFunction Gets the application specific compare function for the elements of the set.
  • pblSetGetElement Returns the element of this set that matches the given element.
  • pblSetGetFirst Returns the first element in this set.
  • pblSetGetHashValueFunction Gets the application specific hash value function for the elements of the set.
  • pblSetGetLast Returns the last element in this set.
  • pblSetHead Retrieves, but does not remove, the head (first element) of this set.
  • pblSetIndexOf Returns the index of the given argument in the set.
  • pblSetIntersection Creates a new set containing the intersection of the elements of the two sets passed as parameters.
  • pblSetIsEmpty Tests if this set has no elements.
  • pblSetIsHashSet Tests if the object is a hash set.
  • pblSetIsSet Tests if the object is a set.
  • pblSetIsSubset Returns a value > 0 if the set passed as second parameter is a subset of the set passed as first parameter, ie.
  • pblSetIsTreeSet Tests if the object is a tree set.
  • pblSetIterator Returns an iterator over the elements in this set.
  • pblSetLastIndexOf Returns the index of the given argument in the set.
  • pblSetNewHashSet Creates a new hash set.
  • pblSetNewTreeSet Creates a new tree set.
  • pblSetPeek Retrieves, but does not remove, the head (first element) of this set.
  • pblSetPoll Retrieves and removes the head (first element) of this set.
  • pblSetPop Retrieves and removes the tail (last element) of this set.
  • pblSetRemove Retrieves and removes the head (first element) of this set.
  • pblSetRemoveAll Removes from this set all of its elements that are contained in the specified collection.
  • pblSetRemoveAt Removes the element at the specified position in this set.
  • pblSetRemoveElement Removes the specified element from this set if it is present.
  • pblSetRemoveFirst Removes and returns the first element in this set.
  • pblSetRemoveLast Removes and returns the last element of this set.
  • pblSetReplaceElement Replaces the element of the set that matches the given element with the given element.
  • pblSetRetainAll Retains only the elements in this set that are contained in the specified collection.
  • pblSetReverseIterator Returns a reverse iterator over the elements in this set.
  • pblSetSetCompareFunction Sets an application specific compare function for the elements of the set.
  • pblSetSetHashValueFunction Sets an application specific hash value function for the elements of the hash set.
  • pblSetSetLoadFactor Sets an application specific load factor for a hash set.
  • pblSetSize Returns the number of elements in this set.
  • pblSetStringHashValue Creates a hash value of a '\0' terminated string.
  • pblSetSymmectricDifference Creates a new set containing all elements of the two sets passed as parameters that are contained in either of the sets but not in both of them.
  • pblSetTail Retrieves, but does not remove, the tail (last element) of this set.
  • pblSetToArray Returns an array containing all of the elements in this set.
  • pblSetTop Retrieves, but does not remove, the tail (last element) of this set.
  • pblSetTrimToSize Trims the capacity of this set instance to the set's current size divided by the load factor of the set.
  • pblSetUnion Creates a new set containing the union of the elements of both sets passed as parameters.

    Alphabetic index


    GET PBL:


    Copyright(C) 2003 - 2015 Peter Graf, this software is distributed under the MIT License.
    This page was generated with the help of DOC++.