标签:
我在上一篇博客中《C语言实现双向非循环链表》实现了如何构造一个双向非循环链表,并实现了正向打印。我还在之前一篇博客《C语言实现单链表的逆序打印》中实现了单链表的逆序打印。这篇博客我们来实现对双向非循环链表进行逆序打印,实现起来非常的简单。代码已经上传至 https://github.com/chenyufeng1991/ReverseDoubleLinkedList 。
核心代码如下:
//打印非循环双向链表,这个其实是正向打印 void printList(Node *pNode){ if (pNode == NULL) { printf("%s函数执行,链表为空,打印失败\n",__FUNCTION__); }else{ while (pNode != NULL) { printf("%d ",pNode->element); pNode = pNode->next; } printf("\n"); } }
//逆序打印双向非循环链表 void ReversePrintList(Node *pNode){ Node *pMove; pMove = pNode; if (pNode == NULL) { printf("%s函数执行,双向非循环链表为空,逆序打印失败\n",__FUNCTION__); }else{ //从前往后遍历到最后一个节点 while (pMove->next != NULL) { pMove = pMove->next; } //从后往前遍历到第一个节点,同时打印节点值 while (pMove != NULL) { printf("%d ",pMove->element); pMove = pMove->prior; } printf("\n%s函数执行,双向非循环链表逆序打印成功\n",__FUNCTION__); } }
标签:
原文地址:http://blog.csdn.net/chenyufeng1991/article/details/50756821