// Copyright 1999
// College of Computer Science
// Northeastern University Boston MA 02115

// This software may be used for educational purposes as long as this copyright
// notice is retained at the top of all files

// Should this software be modified, the words "Modified from Original" must be
// included as a comment below this notice

// All publication rights are retained.  This software or its documentation may
// not be published in any media either in whole or in part.

///////////////////////////////////////////////////////////////////////////////

// Simple Linked Lists Lab Part 1: Head Insert, Tail Insert, Ordered insert

///////////////////////////////////////////////////////////////////////////////

// The standard include files that include traditional C and C++ headers and
// many other Core Tools headers ... see CHeaders.h for additional details

#include "IOTools.h"
#include "Graphics.h"
#include "Random.h"
#include "FileTool.h"

// Enter project specific include files here as well as classes and functions
// that you choose to define in the main shell rather than in separate files


struct Node{



}; // struct Node


// simple singly linked list with head and tail pointer
class List{
	



}; // class List


void Test1(){
// Test head insert and the list traversal functions
cout << "Test head insert and the list traversal functions" << endl;
	
	int i;
	int num;

	List L1;					// Head insert

	for (i = 1; i <= 5; i++){
		num = RequestInt("Next number:");

		L1.HeadInsert(num);
	}

	// L1 traversal
	cout << "Printing list in reverse order" << endl;
	L1.SetFirst();
	int cnt = 0;
	int sum = 0;


	while(L1.GettingNext(num)){
		cnt++;
		cout << cnt << " : " << num << endl;
		sum += num;
	}

	cout << "The sum is: " << sum << endl;
	PressReturn();

}; // Test1


void Test2(){
// Test tail insert and the list traversal functions
cout << "Test tail insert and the list traversal functions" << endl;



}; // Test2


void Test3(){
// Test ordered insert and the list traversal functions
cout << "Test ordered insert and the list traversal functions" << endl;



}; // Test3


void Test4(){
// Test remove from list function
cout << "Test remove from list function" << endl;



}; // Test4


int main(int argc, char* argv[]) {

	// Use the following line if you choose NOT to open any graphics windows
	// InitializeConsole();

	// Build graphics window 0
	GraphicsWindow GW0(300, 300);

	// Move the console below graphics window 0
	ConsolePlaceBelow(0);

	// Give the console the focus for user interaction
	MakeConsoleForeground();

//////////

	// Enter the main program here

	Test1();
	Test2();
	Test3();
	Test4();

//////////

	// The lines below make sure that the graphics windows remain open just
	// before the program terminates

	PressReturn("\nThe main program is about to terminate\n");

	return 0;
}

