链表的三种插入

1、什么是链表:

是一种物理存储单元上非连续、非顺序的存储结构。

2、链表的特点

(1)申请的空间可以不连续

(2)链表访问不方便

(3)插入、删除不需要移动元素,比较方便

3、链表的分类

(1)有没有头结点:带头结点的链表和不带头结点的链表,一般使用的是带头结点的链表

(2)指针域是双向还是单项:单项链表和双向链表

(3)尾结点是否指向头结点:循环链表和不循环链表

4、定义链表中结点的数据类型

typedef struct linknode

{

       data_type data;                     //数据域

       struct linknode *pNext;          //指针域

}Link;

5、根据位置向链表中插入元素

5.1头插法

5.2尾插法

5.3中间插法

 

 5.4显示

//显示
//参数:链表的首地址
//返回值:成功返回ok,失败返回原因
int showLink(Link *pHead)
{
	//入参判断
	if(NULL == pHead)
	{
		return LINKNULL;
	}
	//定义一个结构体,初始化为首节点
	Link *pTmp = NULL;
	pTmp =pHead->pNext;
	//循环遍历,直到pTmp->pNext为空
	while(pTmp != NULL)
	{
		printf("%d\t",pTmp->data);
		pTmp = pTmp->pNext;
	}
	return 0;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值