//节点
struct Note
{
int value;
Note* pNext;
};
typedef struct Note* PList;
//生成一个链表
Note* GenerateList();
//输出一个链表
void PrintList(Note* pHead);
//反转链表
Note* ReverseList(Note* pHead);
//销毁链表
void DestroyList(Note* pHead);
//生成一个链表
Note* GenerateList()
{
Note *pHead(nullptr), *pTemp(nullptr);
int len = 10;
for (int i = 0; i < len; i++)
{
pTemp = new Note();
pTemp->value = len - i -1;
pTemp->pNext = pHead;
pHead = pTemp;
}
return pHead;
}
//输出一个链表
void PrintList(Note* pHead)
{
int i = 0;
while (pHead != nullptr)
{
printf("ListNote[%02d]Value[%02d]\r\n", i++, pHead->value);
pHead = pHead->pNext;
}
}
//反转链表
Note* ReverseList(Note* pHead)
{
Note* pre = nullptr;
Note* cur = pHead;
Note* forward = pHead->pNext;
while (forward != nullptr)
{
forward = cur->pNext;
cur->pNext = pre;
pre = cur;
cur = forward;
forward = cur->pNext;
}
cur->pNext = pre;
return cur;
}
//销毁链表
void DestroyList(Note* pHead)
{
Note* pTemp = nullptr;
while (pHead != nullptr)
{
pTemp = pHead;
pHead = pHead->pNext;
delete pTemp;
}
}
void CFunctionTest::TestList()
{
Note* list = GenerateList();
PrintList(list);
list = ReverseList(list);
printf("================= reverse list =================\r\n");
PrintList(list);
DestroyList(list);
list = nullptr;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)