带头节点单链表及其基本操作

我们继续看点头节点单链表的操作,前面我们已经说到单链表框架的建立,现在我们来看一下单链表具体功能的实现。
首先我们要知道对链表的操作实质上是对节点和节点成员的操作,无论是什么类型的链表都离不开这些操作。无非就是操作起来的复杂度问题。
单链表链表框架的搭建
创建头节点
在单链表里面,我们每一个节点都会包括2部分,数据域和指针域也叫做地址域,其实存放的是下一个节点的地址,所以节点才能像链一样连接起来。

typedef struct Listnode
{
   
	int data;
	struct Listnode* next;
}Listnode;//创建一个节点

接下来我们就要看整个链表的框架了,首先我们需要一个指向链表头的指针和一个指向链表尾部的指针,还需要知道这个链表的实际大小。但是问题很多,指向这个链表的指针类型是什么呢?一定是你定义的Listnode* 类型,因为这个指针是指向节点的,这个节点的类型是Listnode类型,还有链表的长度。看代码

typedef struct  SLIST
{
   
	Listnode* first;
	Listnode* last;
	size_t size;//size_t是无符号整型,因为长度不可能为负数
}SLIST;

我们用链表是对其数据域进行想要的操作,首先就是存储数据,但是一个头节点定义出来后只有夜歌数据域,我们想对多个数据进行操作时就需要使用多个节点,因此就需要申请节点,在这个节点里面放你想要的数据。

Listnode* _Buynode(int x)
{
   
	Listnode* S = (Listnode*)malloc(sizeof(Listnode));
	if (S == NULL)
	return false;
	S->data = x;
	S->next = NULL;
	return S;
}

我们先来看一下链表的输入函数

void ListInit(SLIST* psl)
{
   
	Listnode* S = _Buynode(0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值