C语言 使带头结点的单链表L反向存储实现及原理

C语言 使带头结点的单链表L,反向存储,并且输出

  • 原理
  • 实现代码
    • 结构体
    • 功能函数
    • 输出结果
  • ``欢迎大家在评论区赐教,谢谢``

原理

重新定义一个单链表S,利用头插法使L中的节点插入S中如图
C语言 使带头结点的单链表L反向存储实现及原理_第1张图片

实现代码

结构体

typedef struct SqNode {
     
	int data;
	struct SqNode * Next;

}SqNode,*SqList;

功能函数

SqList ReversedElement(SqNode*L)
{
     
	//利用头插法实现链表逆向存储
	SqList s;
	SqList p;
	s = (SqList)malloc(sizeof(SqNode));
	s->Next = NULL;
	while (L->Next!=NULL)
	{
     
		p = L->Next;//记录从L链表指摘下的节点
		L->Next = L->Next->Next;//使L当前节点指向下一个节点,防止链表锻炼
		p->Next = s->Next;//将节点插入s中
		s->Next = p;
	}
	free(L);//释放L头节点
	return s;
}

输出结果

C语言 使带头结点的单链表L反向存储实现及原理_第2张图片

欢迎大家在评论区赐教,谢谢

你可能感兴趣的:(链表,数据结构)