【数据结构C++描述】带头结点的双向循环链表

前言

链表是线性表的一种实现形式,它的核心是指针,主要特点是增加与删除不需要移动大量元素,查找某一特定元素较慢,逻辑上相邻的元素物理上不一定相邻。
链表主要分为单链表,双向链表与循环链表。每种链表又可分为带头结点的和不带头结点的。本篇主要介绍带头结点的双向循环链表的基本操作。

操作说明

Define

双向循环链表的每个结点需要有两个指针,一个指向前驱,一个指向后继。

//定义代码示例
class Node
{
   
   
public:
	int  data;
	Node* next;
	Node* prior;
public:
	Node()                //构造函数初始化指针数据成员
	{
   
   
		next = nullptr;  
		prior = nullptr;
		data = -1;
	}
};

Creat

创建双向循环链表时需要注意保证每个结点的两个指针都被赋值,且首元素的前驱指针指向尾元素,尾元素的后继指针指向首元素。

//创建代码示例
void Fill(Node *&A)
{
   
      //输入长度
	int N;
	cin >> N;
	//插入头结点
	Node* p;
	p = new Node;
	p->prior = p;
	p->next = p;
	A = p;
	Node* temp = A;
	for (int i = 0; i < N; i++)
	{
   
   
		Node* p;
		p = new Node;
		p->data = rand();       //随机生成数据
		temp->next = p;
		A->prior = p
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值