C++ 链表

一、链表概念

1. 头指针

(1)头指针是链表中必须存在的

(2)头指针中存储的是第一个节点的地址,若链表中存在头节点,那么头指针存储的是头节点的地址,若头节点不存在,则存储的是首元节点的地址

2. 头节点

(1)头节点不是必须存在的

(2)头节点中可以不存储任何东西,也可以存储如链表长度等

3. 节点

(1)节点由两部分组成,一部分存储的为值即Value,另外一部分存储了一个指针,指针存储的是下一个节点的地址

4. 链表

链表是一种动态存储的数据结构,需要对指针进行操作

二、链表定义

1.单链表

单链表是指,尾结点指针为NULL的链表

struct ListNode //用结构定义节点,节点中包含一个值和一个指针
{
	int m_nvalve;
	ListNode * m_pnext;
};

在尾结点处插入一个值

void AddToTail(ListNode ** pHead,int value)
{
	ListNode *pNew = new ListNode(); //新建一个节点a,存储需要存放的值
	pNew ->m_nvalve = value;
	pNew ->m_pnext = nullptr;
	if (*pHead == nullptr) //判断头指针是否为空,若头指针为空,使得头指针指向新建节点
	{
		*pHead = pNew;
	}
	else
	{
		ListNode *pNode = *pHead; //新建一个节点b,使得它与头指针的值一致,头指针不为空,说明该链表不为空
		while(pNode -> m_pnext != nullptr) //节点指针b未到达链表尾端时,节点b的指针指向下一个节点(存储下一个节点的地址),直到达到尾结点
			pNode = pNode ->m_pnext; //
		pNode ->m_pnext = pNew; //节点b到达尾结点时,使节点b的指针指向节点a
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值