数据结构——链表——带头结点的单向循环链表

本文深入探讨了数据结构中的特殊形式——带头结点的单向循环链表,介绍了其特点、如何创建及操作此类链表,包括插入、删除节点等基本操作。
摘要由CSDN通过智能技术生成

带头结点的单向循环链表

#include<stdlib.h>
#include<stdio.h>
#include"headList.h"

/*
	功能:创建一个空链表
	参数:无
	返回值:
		失败返回NULL
		成功返回头结点的地址
*/
List * createLkList()
{
   
	List * list = (List *)malloc(sizeof(List));
	if(list == NULL)
	{
   
		printf("malloc fail\n");
		return NULL;//失败返回NULL
	}

	list->first = NULL;
	list->last = NULL;
	list->n = 0;//现在还是空链表
	return list;
}

/*
	功能:往链表中插入一个元素
	参数:
		@list	头结点的地址
		@x		待插入的数据
	返回值:无
*/

void insert(List * list,ElemType x)
{
   

	//1,分配空间
	Node * p = (Node *)malloc(sizeof(Node));

	//2,保存数据
	p->data = x;
	p->next = NULL;

	//3,把该节点插入到链表中
	if(list->first == NULL)//if(list->n == n)
	{
   
		list->first = p;
		list->last = p; 
	}
	else
	{
   
		#if 1
			//尾插法
			list->last->next = p;
			list->last = p;
		#else
			//头插法</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值