本文整理汇总了C++中DoubleLinkedList::Append方法的典型用法代码示例。如果您正苦于以下问题:C++ DoubleLinkedList::Append方法的具体用法?C++ DoubleLinkedList::Append怎么用?C++ DoubleLinkedList::Append使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DoubleLinkedList
的用法示例。
在下文中一共展示了DoubleLinkedList::Append方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TestAppend
void TestAppend(DoubleLinkedList<int> & alist)
{
std::cout << "\n********** Append **********" << std::endl;
alist.Append(5);
alist.Append(15);
alist.Append(25);
alist.Append(35);
}
示例2: 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;
}
示例3: 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;
}
示例4: main
int main()
{
#if _DEBUG
_CrtDumpMemoryLeaks();
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
#endif
DoubleLinkedList dll;
for (int i = 0; i < numberOfElements; i++)
{
dll.Append(i);
}
std::cout << "Current list: ";
std::cout << dll.ToString() << std::endl << std::endl;
std::cout << "Removing the last 3 elements" << std::endl;
for (int i = 0; i < 3; i++)
{
dll.RemoveLast();
}
std::cout << dll.ToString() << std::endl << std::endl;
std::cout << "Adding 3 100's as the first element" << std::endl;
for (int i = 0; i < 3; i++)
{
dll.AddAtFirst(100);
}
std::cout << dll.ToString() << std::endl << std::endl;
std::cout << "Removing first element" << std::endl;
dll.RemoveFirst();
std::cout << dll.ToString() << std::endl << std::endl;
std::cout << "Removing at index (1) 3 times" << std::endl;
for (int i = 0; i < 3; i++)
{
dll.RemoveAt(1);
}
std::cout << dll.ToString() << std::endl << std::endl;
std::cout << "Adding a -500 at indices 0, 5, (length - 1), and 9999 (should be skipped and not crash)" << std::endl;
dll.InsertAt(0, -500);
dll.InsertAt(5, -500);
dll.InsertAt(dll.CurrentCapacity() - 1, -500);
dll.InsertAt(9999, -500);
std::cout << dll.ToString() << std::endl << std::endl;
std::cout << "Removing first instances of numbers -500, 15, and 999999" << std::endl;
dll.RemoveFirstInstanceOf(-500);
dll.RemoveFirstInstanceOf(15);
dll.RemoveFirstInstanceOf(999999);
std::cout << dll.ToString() << std::endl << std::endl;
std::cout << "Printing the list backwards" << std::endl;
std::cout << dll.BackwardsToString() << std::endl << std::endl;
HoldPromptOpen();
}
示例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: 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;
}
}