p015
Home ] Up ]

 

//file  : p015.cpp
//author: AOU
//date  : 07/22/2004

/////////////////////////////////////////////////
/////////////////////////////////////////////////
#include <iostream.h>
#include <stdlib.h>
#include <time.h>


/////////////////////////////////////////////////
/////////////////////////////////////////////////
const int ARRAY_SIZE = 10;
const int MIN_VALUE =  0;
const int MAX_VALUE =  6;
const int TEST_COUNT = 20;


/////////////////////////////////////////////////
/////////////////////////////////////////////////
void testAll(void);
void test_populate(void);
void test_sortBubble(void);
void test_isSorted(void);
void test_constructor_n(void);
void test_constructor_r(void);
void test_constructor_s(void);
void test_constructor_d(void);
void test_has(void);
void test_hasDistinctValues(void);
void test_shuffle(void);
void test_shuffle_friend(void);
void test_isEqualTo_friend(void);
void test_constructor_copy(void);
void test_isEqualTo_member(void);
void test_isEqualTo_operator(void);
void test_isNotEqualTo_operator(void);
void test_deleteAtPos(void);
void test_purgeDupes(void);
void test_operator_plus(void);

void test_operator_subset(void);
void test_operator_intersection(void);
void test_operator_union(void);

void test_operator_minus(void);


/////////////////////////////////////////////////
/////////////////////////////////////////////////
class CNode
  {
  private:
    int info;
    CNode *next;
  public:
    CNode(void);
    CNode(int x);

  friend class CArray;
  };


/////////////////////////////////////////////////
/////////////////////////////////////////////////
class CArray
  {
  private:
    int n;
    CNode *head;
    CNode *tail;
  public:
    CArray(void);
    bool insertAtTail(int x);
    void display(void);
  };


/////////////////////////////////////////////////
/////////////////////////////////////////////////
void main(void)
  {
  CArray ta;
  ta.display();
  ta.insertAtTail(5);
  ta.display();
  ta.insertAtTail(2);
  ta.display();
  ta.insertAtTail(4);
  ta.display();
  ta.insertAtTail(9);
  ta.display();
  }


/////////////////////////////////////////////////
/////////////////////////////////////////////////
void CArray::display(void)
  {
  cout << "[" << this->n << " ]= ";
  CNode * p;
  p = this->head;

  while (p != NULL)
    {
    cout << p->info << ' ';
    p = p->next;
    }

  cout << endl;
  }


/////////////////////////////////////////////////
/////////////////////////////////////////////////
bool CArray::insertAtTail(int x)
  {
  CNode *p;
  p = new CNode;
  p->info = x;
  p->next = NULL;

  if (this->head == NULL)
    this->head = this->tail = p;
  else
    {
    this->tail->next = p;
    this->tail = p;
    }
  this->n++;
  return true;
  }


/////////////////////////////////////////////////
/////////////////////////////////////////////////
CArray::CArray(void)
  {
  this->n = 0;
  this->head = NULL;
  this->tail = NULL;
  }


/////////////////////////////////////////////////
/////////////////////////////////////////////////
CNode::CNode(void)
  {
  this->info = 0;
  this->next = NULL;
  }


/////////////////////////////////////////////////
/////////////////////////////////////////////////
CNode::CNode(int x)
  {
  this->info = x;
  this->next = NULL;
  }

/*
Output:
[0 ]=
[1 ]= 5
[2 ]= 5 2
[3 ]= 5 2 4
[4 ]= 5 2 4 9
Press any key to continue
*/