A Stacked array is an integer array that contains a sequence of ascending integers.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace Common { // A Stacked array is an integer array that contains a sequence of ascending integers. // It is another representation of a bitset. Instead it contains the list of positions in the bitset that // are set to true. public class StackArrayUtility { public StackArrayUtility(int max) { _buffer = new int[max]; } public int[] ToStackedArray(BitArray ba) { int j = 0; for (int i = 0; i < ba.Length; i++) { if (ba[i]) { _buffer[j] = i; j++; } } int[] ret = new int[j]; for (int i = 0; i < j; i++) { ret[i] = _buffer[i]; } return ret; } public void FromStackedArray(int[] stack, BitArray ba) { for (int i = 0; i < stack.Length; i++) { ba[i] = true; } } #region private private int[] _buffer = null; #endregion } }