一、结点结构
单链表的数据结构定义如下:
typedef struct node
{
ElemType data;
struct node *link;
}list;
其中,ElemType可以是任意数据类型如int、float或者char等,在算法中,规定其默认为int类型。
二、逆序
本文描述的是单链表逆序,链表逆序需要维护3个指针,分别是指向前一个节点pre,指向当前节点cur,指向下一个节点next,具体代码如下:
list *reverselist(list *head)
{
if (NULL == head)
{
return NULL;
}
list *next=NULL, *pre=head, *cur=head->link;
while (cur)
{
next = cur->link; // 保存当前结点的下一结点
cur->link = pre; // 改变当前结点的link域,指向它的前一个结点
pre = cur; // 指针移到下一个结点
cur = next;
}
head = pre; // 恢复头结点
return head;
}
阅读(778) | 评论(0) | 转发(0) |