一、单链表从尾到头打印的四种方法。
1、正常从尾到头打印。
用一个尾指针指到最后,尾指针每次前移移位,遇到尾指针则打印。
void EndToFirstPrintNode(SListNode*ps) //正常从尾到头打印
{
SListNode *cur=ps;
SListNode *tail=NULL;
while (ps != tail)
{
cur=ps;
while (tail != cur->_next)
cur=cur->_next;printf("%d ",cur->_data);
tail=cur;
}
}
2、用动态顺序表。
先遍历一遍把链表的每个数保存在动态顺序表中,再逆序打印顺序表。
void EndToFirstPrintSListNode(SListNode *ps) //链表的从尾到头打印,用动态顺序表保存数据。
{
size_t i = 0;
while (ps)
{
CheckFullSeqlist(&List); //判容和扩容
List.data[i++]=ps->_data; //把链表数据赋给顺序表
List.size++;