通过本文主要向大家介绍了倒叙打印链表等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
倒叙打印链表
// 倒叙打印链表
#if 1
void ReversePrint(SListNode *pFirst)
{
SListNode *pNode, *end;//定义两个指针,分别指向头结点和尾结点,空间浪费小,时间大
pNode = pFirst;
end = NULL;
while (end != pFirst)
{
while (pNode->pNext!=end)
{
pNode = pNode->pNext;
}
end = pNode;//依次找到最后一个,倒数第二个·······第一个
printf(" <- %d ", pNode->data);
pNode = pFirst;//让pnode为第一个结点,继续找
}
printf("\n");
}
#endif
#if 0
void show(SListNode*p){//用递归依次得到链表倒序,时间少,空间大
if (p->pNext){
show(p->pNext);
}
printf("<- %d", p->data);
}
void TestPrintR()
{
SListNode *pFirst = NULL;
PushBack(&pFirst, 1);
PushBack(&pFirst, 2);
PushBack(&pFirst, 3);
PushBack(&pFirst, 4);
PushBack(&pFirst, 5);
show(pFirst);
}
#endif