C# Class Universe.BotManager.AStar.Heap

The Heap allows to maintain a list sorted as long as needed. If no IComparer interface has been provided at construction, then the list expects the Objects to implement IComparer. If the list is not sorted it behaves like an ordinary list. When sorted, the list's "Add" method will put new objects at the right place. As well the "Contains" and "IndexOf" methods will perform a binary search.
Inheritance: IList, ICloneable
Show file Open project: Virtual-Universe/Virtual-Universe Class Usage Examples

Public Methods

Method Description
Add ( object obj ) : int

IList implementation. Adds the object at the right place.

AddRange ( ICollection coll ) : void

The objects will be added at the right place.

Clear ( ) : void

IList implementation. Idem ArrayList

Clone ( ) : object

ICloneable implementation. Idem ArrayList

Contains ( object obj ) : bool

IList implementation. Search for a specified object in the list. If the list is sorted, a <see cref = "ArrayList.BinarySearch">BinarySearch</see> is performed using IComparer interface. Else the <see cref = "Equals">Object.Equals</see> implementation is used.

CopyTo ( Array array, int arrayIndex ) : void

IList.ICollection implementation. Idem ArrayList

Equals ( object obj ) : bool

Object.Equals() override.

GetEnumerator ( ) : IEnumerator

IList.IEnumerable implementation. Idem ArrayList

GetHashCode ( ) : int

Object.GetHashCode() override.

Heap ( ) : System

Default constructor. Since no IComparer is provided here, added objects must implement the IComparer interface.

Heap ( IComparer comparer ) : System

Constructor.

Heap ( IComparer comparer, int capacity ) : System

Constructor.

Heap ( int capacity ) : System

Constructor. Since no IComparer is provided, added objects must implement the IComparer interface.

IndexOf ( object obj ) : int

IList implementation. Returns the index of the specified object in the list. If the list is sorted, a <see cref = "ArrayList.BinarySearch">BinarySearch</see> is performed using IComparer interface. Else the <see cref = "Equals">Object.Equals</see> implementation of objects is used.

IndexOf ( object obj, Equality areEqual ) : int

Idem IndexOf(object), but with a specified equality function

IndexOf ( object obj, int start ) : int

Idem IndexOf(object), but starting at a specified position in the list

IndexOf ( object obj, int start, Equality areEqual ) : int

Idem IndexOf(object), but with a start index and a specified equality function

IndexOfMax ( ) : int

Returns the object of the list whose value is maximum

IndexOfMin ( ) : int

Returns the object of the list whose value is minimum

InitProperties ( IComparer comparer, int capacity ) : void
Insert ( int index, object obj ) : void

IList implementation. Cannot be used on a Heap.

InsertRange ( int index, ICollection coll ) : void

Cannot be called on a Heap.

LimitOccurrences ( object value, int numberToKeep ) : void

Limits the number of occurrences of a specified value. Same values are equals according to the Equals() method of objects in the list. The first occurrences encountered are kept.

Pop ( ) : object

Returns the topmost object on the list and removes it from the list

Push ( object obj ) : int

Pushes an object on list. It will be inserted at the right spot.

Remove ( object value ) : void

IList implementation. Idem ArrayList

RemoveAt ( int index ) : void

IList implementation. Idem ArrayList

RemoveDuplicates ( ) : void

Removes all duplicates in the list. Each value encountered will have only one representant

ToString ( ) : string

Object.ToString() override. Build a string to represent the list.

this ( int index ) : object

IList implementation. Gets object's value at a specified index. The set operation is impossible on a Heap.

Private Methods

Method Description
ObjectIsCompliant ( object obj ) : bool

Method Details

Add() public method

IList implementation. Adds the object at the right place.
The Heap is set to use object's IComparable interface, and the specified object does not implement this interface.
public Add ( object obj ) : int
obj object The object to add.
return int

AddRange() public method

The objects will be added at the right place.
The Heap is set to use object's IComparable interface, and the specified object does not implement this interface.
public AddRange ( ICollection coll ) : void
coll ICollection The object to add.
return void

Clear() public method

IList implementation. Idem ArrayList
public Clear ( ) : void
return void

Clone() public method

ICloneable implementation. Idem ArrayList
public Clone ( ) : object
return object

Contains() public method

IList implementation. Search for a specified object in the list. If the list is sorted, a <see cref = "ArrayList.BinarySearch">BinarySearch</see> is performed using IComparer interface. Else the <see cref = "Equals">Object.Equals</see> implementation is used.
public Contains ( object obj ) : bool
obj object The object to look for
return bool

CopyTo() public method

IList.ICollection implementation. Idem ArrayList
public CopyTo ( Array array, int arrayIndex ) : void
array System.Array
arrayIndex int
return void

Equals() public method

Object.Equals() override.
public Equals ( object obj ) : bool
obj object
return bool

GetEnumerator() public method

IList.IEnumerable implementation. Idem ArrayList
public GetEnumerator ( ) : IEnumerator
return IEnumerator

GetHashCode() public method

Object.GetHashCode() override.
public GetHashCode ( ) : int
return int

Heap() public method

Default constructor. Since no IComparer is provided here, added objects must implement the IComparer interface.
public Heap ( ) : System
return System

Heap() public method

Constructor.
public Heap ( IComparer comparer ) : System
comparer IComparer Will be used to compare added elements for sort and search operations.
return System

Heap() public method

Constructor.
public Heap ( IComparer comparer, int capacity ) : System
comparer IComparer Will be used to compare added elements for sort and search operations.
capacity int /// Capacity of the list (ArrayList.Capacity) ///
return System

Heap() public method

Constructor. Since no IComparer is provided, added objects must implement the IComparer interface.
public Heap ( int capacity ) : System
capacity int /// Capacity of the list (ArrayList.Capacity) ///
return System

IndexOf() public method

IList implementation. Returns the index of the specified object in the list. If the list is sorted, a <see cref = "ArrayList.BinarySearch">BinarySearch</see> is performed using IComparer interface. Else the <see cref = "Equals">Object.Equals</see> implementation of objects is used.
public IndexOf ( object obj ) : int
obj object The object to locate.
return int

IndexOf() public method

Idem IndexOf(object), but with a specified equality function
public IndexOf ( object obj, Equality areEqual ) : int
obj object The object to locate.
areEqual Equality Equality function to use for the search.
return int

IndexOf() public method

Idem IndexOf(object), but starting at a specified position in the list
public IndexOf ( object obj, int start ) : int
obj object The object to locate.
start int The index for start position.
return int

IndexOf() public method

Idem IndexOf(object), but with a start index and a specified equality function
public IndexOf ( object obj, int start, Equality areEqual ) : int
obj object The object to locate.
start int The index for start position.
areEqual Equality Equality function to use for the search.
return int

IndexOfMax() public method

Returns the object of the list whose value is maximum
public IndexOfMax ( ) : int
return int

IndexOfMin() public method

Returns the object of the list whose value is minimum
public IndexOfMin ( ) : int
return int

InitProperties() public method

public InitProperties ( IComparer comparer, int capacity ) : void
comparer IComparer
capacity int
return void

Insert() public method

IList implementation. Cannot be used on a Heap.
Insert method cannot be called on a Heap.
public Insert ( int index, object obj ) : void
index int The index before which the object must be added.
obj object The object to add.
return void

InsertRange() public method

Cannot be called on a Heap.
Insert cannot be called on a Heap.
public InsertRange ( int index, ICollection coll ) : void
index int The index before which the objects must be added.
coll ICollection The object to add.
return void

LimitOccurrences() public method

Limits the number of occurrences of a specified value. Same values are equals according to the Equals() method of objects in the list. The first occurrences encountered are kept.
public LimitOccurrences ( object value, int numberToKeep ) : void
value object Value whose occurrences number must be limited.
numberToKeep int Number of occurrences to keep
return void

Pop() public method

Returns the topmost object on the list and removes it from the list
public Pop ( ) : object
return object

Push() public method

Pushes an object on list. It will be inserted at the right spot.
public Push ( object obj ) : int
obj object Object to add to the list
return int

Remove() public method

IList implementation. Idem ArrayList
public Remove ( object value ) : void
value object The object whose value must be removed if found in the list.
return void

RemoveAt() public method

IList implementation. Idem ArrayList
public RemoveAt ( int index ) : void
index int Index of object to remove.
return void

RemoveDuplicates() public method

Removes all duplicates in the list. Each value encountered will have only one representant
public RemoveDuplicates ( ) : void
return void

ToString() public method

Object.ToString() override. Build a string to represent the list.
public ToString ( ) : string
return string

this() public method

IList implementation. Gets object's value at a specified index. The set operation is impossible on a Heap.
Index is less than zero or Index is greater than Count. [] operator cannot be used to set a value on a Heap.
public this ( int index ) : object
index int
return object