#include "nskiplist.h"
#include "nsortedlist.h"
#include "nstring.h"
#include "noutput.h"
#include <ctime>
void show_iterator(NSkipList<NString> &slist) {
for (NSkipList<NString>::iterator i = slist.begin(); i != slist.end(); ++i) {
NMessage::print() << "[ " << *i << "]:";
}
}
void showTime(time_t start, time_t end, int size) {
time_t length;
length = end - start;
NMessage::print() << size << " items added in " << static_cast<nuint64>(length) << " seconds. ";
if (length > 0) {
NMessage::print() << "With an average of " << static_cast<double>(size/length)
<< " items p/ sec.";
}
}
void addSkipList(NSkipList<NString> &slist, int size, int *data) {
NString tmp;
time_t start;
time_t end;
start = time(NULL);
for (int i = 0; i < size; i++) {
tmp = tmp.number(*data);
slist.insert(tmp);
data++;
}
end = time(NULL);
showTime(start, end, size);
}
int main(void) {
NSkipList<NString> slist(16);
int size = 10;
int *data = new int[size];
NMessage::print() << "Loading random data ... ";
srand(time(NULL));
for (int i = 0; i < size; i++) {
*data = rand();
NMessage::print() << *data << " : ";
data++;
}
for (int i = size; i != 0; i--, data--) {}
NMessage::print() << "Adding " << size << " items to a SkipList";
addSkipList(slist, size, data);
show_iterator(slist);
delete[] data;
}