Exemple #1
0
void TestInsertBefore()
{
    DoubleLinkedList<int> clist;
    
    std::cout << "\n********** Testing: DoubleLinkedList InsertBefore **********" << std::endl;
    
    std::cout << "\n********** Testing: InsertBefore with Empty List **********" << std::endl;
    try
    {
        //Note: Here is the function signature so you can determine the order of parameters
        //void DoubleLinkedList<T>::InsertBefore(const T & new_data, const T & existing_data)
        clist.InsertBefore(-1, 0);
    }
    catch(const char * msg)
    {
        std::cout << msg << std::endl;
    }
    std::cout << "\n********** Testing: InsertBefore head with only one node **********" << std::endl;
    clist.Append(0);
    clist.InsertBefore(-1, 0);
    
    std::cout << clist.First() << std::endl;
    std::cout << clist.Last() << std::endl;
    
    std::cout << "\n********** Testing: InsertBefore head with multiple nodes **********" << std::endl;
    clist.InsertBefore(-3, -1);
    
    std::cout << clist.First() << std::endl;
    std::cout << clist.Last() << std::endl;
    
    std::cout << "\n********** Testing: InsertBefore a node in the middle of the list **********" << std::endl;
    clist.InsertBefore(-2, -1);
    
    std::cout << clist.First() << std::endl;
    std::cout << clist.Last() << std::endl;
    
    std::cout << "\n********** Testing: InsertBefore but existing_data doesn't exist **********" << std::endl;
    try
    {
        clist.InsertBefore(-2, 99);
    }
    catch (const char * msg)
    {
        std::cout << msg << std::endl;
    }
}
Exemple #2
0
void TestInsertBefore()
{
	DoubleLinkedList<int> clist;

	std::cout << "\n********** InsertBefore **********" << std::endl;

	// Empty List
	try
	{
		clist.InsertBefore(-1, 0);
	}
	catch (char * msg)
	{
		std::cout << msg << std::endl;
	}
	// Head and Tail are the same
	clist.Append(0);
	clist.InsertBefore(-1, 0);

	std::cout << clist.First() << std::endl;
	std::cout << clist.Last() << std::endl;

	// Before Head
	clist.InsertBefore(-3, -1);

	std::cout << clist.First() << std::endl;
	std::cout << clist.Last() << std::endl;

	// Middle
	clist.InsertBefore(-2, -1);

	std::cout << clist.First() << std::endl;
	std::cout << clist.Last() << std::endl;

	// Node doesn't exist
	try
	{
		clist.InsertBefore(-2, 99);
	}
	catch (char * msg)
	{
		std::cout << msg << std::endl;
	}
}