Map for data structures

You should have a test to guarantee the order of the elements when running the forEach:

```javascript
h = new heap.MinHeap();
h.heapify([3, 10, 1000, 0, 2, 1]);

var output = [];
h.forEach(function (n) {
  output.push(n);
});

assert.deepEqual(output, [0, 1, 2, 3, 10, 1000]);
```