#include "intbag.hpp"

intbag::intbag(void)
{
  size = 0;
  cursor = 0;
  data = new int[MAX];
}

intbag::~intbag(void)
{
  delete data;
}

int intbag::count(void)
{
  return size;
}

int intbag::full(void)
{
  return size == MAX - 1;
}

int intbag::empty(void)
{
  return size == 0;
}

void intbag::insert(int x)
{
  data[size++] = x;
}

void intbag::remove(int x)
{
  int i;
  for (i=0; i<size; i++)
    if (x == data[i])
      {
	data[i] = data[size - 1];
	size--;
	return;
      }
}

int intbag::has(int x)
{
  for (int i = 0; i<size; i++)
    if (x == data[i])
      return 1;
  return 0;
}

int * intbag::next(void)
{
  if (cursor < size)
    return & data[cursor++];
else
  return NULL;
}

void intbag::resetcursor(void)
{
  cursor = 0;
}


