//Date: 2003.09.22
//File: OB_List02.cpp
//Author: AOU
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
/*
NEW
void testIsSorted(void);
void testPopulate(void);
void initialize(void);
bool isSorted(void);
void populate(int n);
*/
////////////////////////////////////////
//constants
////////////////////////////////////////
const int MAX_SIZE = 25;
const int TEST_COUNT = 19;
const int MAX_VALUE = 15;
const int UNDEFINED = -911;
////////////////////////////////////////
//prototypes
////////////////////////////////////////
void testSortBubble(void);
void testInsert(void);
void testShuffle(void);
void testIsSorted(void);
void testPopulate(void);
////////////////////////////////////////
//class COList
////////////////////////////////////////
class COList
{
private:
int a[MAX_SIZE];
int n;
public:
COList(void);
void display(void);
void initialize(void);
bool insert(int x);
void swap(int &x, int &y)
{
int temp = x;
x = y;
y = temp;
};
bool isSorted(void);
void shuffle(void);
void populate(int n);
void sortBubble(void);
};
////////////////////////////////////////
//main
////////////////////////////////////////
void main(void)
{
srand(time(NULL));
/*
COList myList, youList, hisList;
myList.display();
myList.insert(12);
myList.display();
myList.insert(16);
myList.display();
myList.insert(14);
myList.display();
//testInsert();
//testShuffle();
//testSortBubble();
*/
///testPopulate();
testIsSorted();
}
void testPopulate(void)
{
cout << "++++++++++++\n";
cout << "testPopulate\n";
cout << "++++++++++++\n";
for (int c=1; c<=TEST_COUNT; c++)
{
COList myList;
int n = rand()%(MAX_SIZE+1);
cout << "n = " << n << endl;
myList.populate(n);
myList.display();
cout << "*****************\n";
}
}
void COList::populate(int n)
{
for (int i=1; i<=n; i++)
{
int x = rand()%(MAX_VALUE+1);
(*this).insert(x);
}
}
void testIsSorted(void)
{
cout << "++++++++++++\n";
cout << "testIsSorted\n";
cout << "++++++++++++\n";
for (int c=1; c<=TEST_COUNT; c++)
{
COList myList;
int n = rand()%(MAX_SIZE+1);
cout << "n = " << n << endl;
myList.populate(n);
myList.display();
if (myList.isSorted())
cout << "List is sorted\n";
else
cout << "List is NOT NOT sorted\n";
cout << "*****************\n";
}
}
bool COList::isSorted(void)
{
for (int i=0; i<=n-2; i++)
if (a[i] > a[i+1])
return false;
return true;
}
void COList::initialize(void)
{
for (int i=0; i<=MAX_SIZE-1; i++)
a[i] = UNDEFINED;
n = 0;
}
bool COList::insert(int x)
{
if (0 == n)
{
a[n] = x;
n++;
return true;
};
if (MAX_SIZE == n)
return false;
if (n > 0)
{
a[n] = x;
n++;
for (int i=n-1; i>=1; i--)
{
if (a[i] >= a[i-1]) return true;
swap(a[i], a[i-1]);
}
return true;
}
return false;
}
void COList::display(void)
{
cout << "a[" << n << "]: ";
for (int i=0; i<=n-1; i++)
cout << a[i] << ' ';
cout << endl;
}
COList::COList(void)
{
cout << "BEING INITIALIZED\n";
initialize();
}
|