本文整理汇总了C++中DoubleLinkedList::Last方法的典型用法代码示例。如果您正苦于以下问题:C++ DoubleLinkedList::Last方法的具体用法?C++ DoubleLinkedList::Last怎么用?C++ DoubleLinkedList::Last使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DoubleLinkedList
的用法示例。
在下文中一共展示了DoubleLinkedList::Last方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TestFirstAndLast
void TestFirstAndLast(const DoubleLinkedList<int> & alist)
{
DoubleLinkedList<int> blist;
std::cout << "\n********** First and Last **********" << std::endl;
// Full List
std::cout << alist.First() << std::endl;
std::cout << alist.Last() << std::endl;
// Empty List
try
{
std::cout << blist.First() << std::endl;
}
catch (char * msg)
{
std::cout << msg << std::endl;
}
try
{
std::cout << blist.Last() << std::endl;
}
catch (char * msg)
{
std::cout << msg << std::endl;
}
}
示例2: TestPrepend
void TestPrepend(DoubleLinkedList<int> & alist)
{
DoubleLinkedList<int> blist;
std::cout << "\n********** Prepend **********" << std::endl;
// Full List
alist.Prepend(4);
alist.Prepend(3);
alist.Prepend(2);
alist.Prepend(1);
alist.Prepend(0);
std::cout << alist.First() << std::endl;
std::cout << alist.Last() << std::endl;
// Empty List
blist.Prepend(100);
blist.Prepend(200);
blist.Prepend(300);
blist.Prepend(400);
blist.Prepend(500);
std::cout << blist.First() << std::endl;
std::cout << blist.Last() << std::endl;
}
示例3: TestFirstAndLast
void TestFirstAndLast(const DoubleLinkedList<int> & alist)
{
DoubleLinkedList<int> blist;
std::cout << "\n********** Testing: DoubleLinkedList First and Last **********" << std::endl;
std::cout << "\n********** Testing: First and Last with Full List **********" << std::endl;
std::cout << alist.First() << std::endl;
std::cout << alist.Last() << std::endl;
std::cout << "\n********** Testing: First with Empty List **********" << std::endl;
try
{
std::cout << blist.First() << std::endl;
}
catch (const char * msg)
{
std::cout << msg << std::endl;
}
std::cout << "\n********** Testing: First with Empty List **********" << std::endl;
try
{
std::cout << blist.Last() << std::endl;
}
catch (const char * msg)
{
std::cout << msg << std::endl;
}
}
示例4: TestExtract
void TestExtract()
{
DoubleLinkedList<int> alist;
std::cout << "\n********** Extract **********" << std::endl;
// Empty List
try
{
alist.Extract(0);
}
catch (char * msg)
{
std::cout << msg << std::endl;
}
// Head and Tail are the same
alist.Append(0);
alist.Extract(0);
try
{
std::cout << alist.First() << std::endl;
}
catch (char * msg)
{
std::cout << msg << std::endl;
}
try
{
std::cout << alist.Last() << std::endl;
}
catch (char * msg)
{
std::cout << msg << std::endl;
}
// Remove Head
alist.Append(0);
alist.Append(1);
alist.Extract(0);
std::cout << alist.First() << std::endl;
std::cout << alist.Last() << std::endl;
// Remove Tail
alist.Prepend(0);
alist.Extract(1);
std::cout << alist.First() << std::endl;
std::cout << alist.Last() << std::endl;
}
示例5: TestInsertAfter
void TestInsertAfter()
{
DoubleLinkedList<int> clist;
std::cout << "\n********** Testing: DoubleLinkedList InsertAfter **********" << std::endl;
std::cout << "\n********** Testing: InsertAfter with Empty List **********" << std::endl;
try
{
//Note: Here is the function signature so you can determine the order of parameters
//void DoubleLinkedList<T>::InsertAfter(const T & new_data, const T & existing_data)
clist.InsertAfter(-1, 0);
}
catch(const char * msg)
{
std::cout << msg << std::endl;
}
std::cout << "\n********** Testing: InsertAfter tail with only one node **********" << std::endl;
clist.Append(0);
clist.InsertAfter(1, 0);
std::cout << clist.First() << std::endl;
std::cout << clist.Last() << std::endl;
std::cout << "\n********** Testing: InsertAfter tail with multiple nodes **********" << std::endl;
clist.InsertAfter(3, 1);
std::cout << clist.First() << std::endl;
std::cout << clist.Last() << std::endl;
std::cout << "\n********** Testing: InsertAfter a node in the middle of the list **********" << std::endl;
clist.InsertAfter(2, 1);
std::cout << clist.First() << std::endl;
std::cout << clist.Last() << std::endl;
std::cout << "\n********** Testing: InsertAfter but existing_data doesn't exist **********" << std::endl;
try
{
clist.InsertAfter(-2, 99);
}
catch (const char * msg)
{
std::cout << msg << std::endl;
}
}
示例6: TestInsertBefore
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;
}
}
示例7: TestInsertAfter
void TestInsertAfter()
{
DoubleLinkedList<int> clist;
std::cout << "\n********** InsertAfter **********" << std::endl;
try
{
clist.InsertAfter(-1, 0);
}
catch (char * msg)
{
std::cout << msg << std::endl;
}
// Head and Tail are the same
clist.Append(0);
clist.InsertAfter(1, 0);
std::cout << clist.First() << std::endl;
std::cout << clist.Last() << std::endl;
// After Tail
clist.InsertAfter(3, 1);
std::cout << clist.First() << std::endl;
std::cout << clist.Last() << std::endl;
// Middle
clist.InsertAfter(2, 1);
std::cout << clist.First() << std::endl;
std::cout << clist.Last() << std::endl;
// Node doesn't exist
try
{
clist.InsertAfter(-2, 99);
}
catch (char * msg)
{
std::cout << msg << std::endl;
}
}
示例8: TestAppend
void TestAppend(DoubleLinkedList<int> & alist)
{
std::cout << "\n********** Testing: DoubleLinkedList Append **********" << std::endl;
alist.Append(5);
alist.Append(15);
alist.Append(25);
alist.Append(35);
std::cout << alist.First() << std::endl;
std::cout << alist.Last() << std::endl;
}
示例9: TestExtract
void TestExtract()
{
DoubleLinkedList<int> alist;
std::cout << "\n********** Testing: DoubleLinkedList Extract **********" << std::endl;
std::cout << "\n********** Testing: Extract with empty list**********" << std::endl;
try
{
//Note: The parameter is the DATA to be removed
alist.Extract(0);
}
catch (const char * msg)
{
std::cout << msg << std::endl;
}
std::cout << "\n********** Testing: Extract removing only node **********" << std::endl;
alist.Append(0);
alist.Extract(0);
try
{
std::cout << alist.First() << std::endl;
}
catch (const char * msg)
{
std::cout << msg << std::endl;
}
try
{
std::cout << alist.Last() << std::endl;
}
catch (const char * msg)
{
std::cout << msg << std::endl;
}
std::cout << "\n********** Testing: Extract removing head **********" << std::endl;
alist.Append(0);
alist.Append(1);
alist.Extract(0);
std::cout << alist.First() << std::endl;
std::cout << alist.Last() << std::endl;
std::cout << "\n********** Testing: Extract removing tail **********" << std::endl;
alist.Prepend(0);
alist.Extract(1);
std::cout << alist.First() << std::endl;
std::cout << alist.Last() << std::endl;
std::cout << "\n********** Testing: Extract removing non-existing node **********" << std::endl;
alist.Append(0);
alist.Append(1);
try
{
alist.Extract(99);
}
catch (const char * msg)
{
std::cout << msg << std::endl;
}
}