Source code for ./labs/lab01/list.cpp (via source-highlight)
// This file contains the main code to test the List class
//
// Copyright (c) 1994, 2014 by Aaron Bloomfield
// Released under a CC BY-SA license
//
// Revision history
// 05-07-94: Main code written
// 07-12-95: Bug updates
// 01-13-14: Modified to fit modern C++ compilers; reformatted
#include <iostream>
#include <stdio.h>
#include "list.h"
using namespace std;
int main() {
cout << "main(): started." << endl;
List<int> *l = new List<int>();
int *n, i;
l->display();
cout << "size(): returned " << l->size() << endl;
n = l->head();
if ( n == NULL )
cout << "head(): returned NULL." << endl;
else
cout << "head(): returned " << *n << endl;
n = l->tail();
if ( n == NULL )
cout << "tail(): returned NULL." << endl;
else
cout << "tail(): returned " << *n << endl;
cout << "empty() called, returned " << l->empty() << endl;
cout << "element(): '" << 2 << "' returned: " << l->element(2) << endl;
l->push(2);
l->display();
cout << "empty() called, returned " << l->empty() << endl;
n = l->head();
if ( n == NULL )
cout << "head(): returned NULL." << endl;
else
cout << "head(): returned " << *n << endl;
n = l->tail();
if ( n == NULL )
cout << "tail(): returned NULL." << endl;
else
cout << "tail(): returned " << *n << endl;
l->push(3);
l->display();
n = l->head();
if ( n == NULL )
cout << "head(): returned NULL." << endl;
else
cout << "head(): returned " << *n << endl;
n = l->tail();
if ( n == NULL )
cout << "tail(): returned NULL." << endl;
else
cout << "tail(): returned " << *n << endl;
cout << "element(): '" << 2 << "' returned: " << l->element(2) << endl;
cout << "element(): '" << 4 << "' returned: " << l->element(4) << endl;
cout << "empty() called, returned " << l->empty() << endl;
cout << endl;
l->push(4);
l->display();
n = l->head();
if ( n == NULL )
cout << "head(): returned NULL." << endl;
else
cout << "head(): returned " << *n << endl;
n = l->tail();
if ( n == NULL )
cout << "tail(): returned NULL." << endl;
else
cout << "tail(): returned " << *n << endl;
l->push(5);
l->display();
n = l->head();
if ( n == NULL )
cout << "head(): returned NULL." << endl;
else
cout << "head(): returned " << *n << endl;
n = l->tail();
if ( n == NULL )
cout << "tail(): returned NULL." << endl;
else
cout << "tail(): returned " << *n << endl;
cout << "empty() called, returned " << l->empty() << endl;
cout << endl;
n = l->pop();
if ( n == NULL )
cout << "pop(): list is empty, pop(): returned NULL." << endl;
else
cout << "pop(): returned " << *n << endl;
l->display();
n = l->head();
if ( n == NULL )
cout << "head(): returned NULL." << endl;
else
cout << "head(): returned " << *n << endl;
n = l->tail();
if ( n == NULL )
cout << "tail(): returned NULL." << endl;
else
cout << "tail(): returned " << *n << endl;
cout << "size(): returned " << l->size() << endl;
n = l->pop();
if ( n == NULL )
cout << "pop(): list is empty, pop(): returned NULL." << endl;
else
cout << "pop(): returned " << *n << endl;
l->display();
n = l->pop();
if ( n == NULL )
cout << "pop(): list is empty, pop(): returned NULL." << endl;
else
cout << "pop(): returned " << *n << endl;
l->display();
n = l->pop();
if ( n == NULL )
cout << "pop(): list is empty, pop(): returned NULL." << endl;
else
cout << "pop(): returned " << *n << endl;
l->display();
n = l->pop();
if ( n == NULL )
cout << "pop(): list is empty, pop(): returned NULL." << endl;
else
cout << "pop(): returned " << *n << endl;
l->display();
cout << "empty() called, returned " << l->empty() << endl;
cout << endl;
l->push(1);
l->push(2);
l->push(3);
l->push(4);
l->display();
l->push(5);
l->display();
l->push_head(0);
l->display();
n = l->pop();
if ( n == NULL )
cout << "pop(): list is empty, pop(): returned NULL." << endl;
else
cout << "pop(): returned " << *n << endl;
l->display();
n = l->pop_head();
if ( n == NULL )
cout << "pop_head(): list is empty, pop_head(): returned NULL." << endl;
else
cout << "pop_head(): returned " << *n << endl;
l->display();
cout << "empty() called, returned " << l->empty() << endl;
l->clear();
cout << "clear() called." << endl;
l->display();
cout << "empty() called, returned " << l->empty() << endl;
l->remove(1);
l->push(1);
l->display();
l->remove(1);
l->display();
l->push(1);
l->push(2);
l->push(3);
l->push(4);
l->push(5);
l->display();
l->remove(5);
l->display();
l->remove(6);
l->display();
delete l;
cout << endl;
cout << "main(): Goodbye." << endl;
return 0;
}