数据结构之循环链表操作3-(合并,拆分,插入,删除,建立等)

本文介绍了单向循环链表的基本操作,包括如何合并、拆分链表,以及如何进行插入和删除节点。关键在于识别链表结束的标志,即尾元素指向头结点。
摘要由CSDN通过智能技术生成

单向循环链表的基本操作与单向链表有很多相似的,差别在于链表结束的判断条件,最后一个结点不再是指向NULL,而是指向头结点,将头尾连起来

代码如下关键在于判断链表终止的条件尾元素->头结点

#include <iostream>
#include <cstdlib>

using namespace std;

template<typename T>
struct Node{		//结点
	T data;
	Node<T> *next;
};

template<typename T>
class CirList{
private:
	Node<T> *tail = NULL;		//尾指针
public:
	CirList();				//创建空循环链表(带头结点)
	~CirList();			//完成摧毁操作
	void CreateCirList(int n);		//创建表长为n的循环链表
	void Insert(int i, T e);	//在i位置插入值e
	T Delete(int i);			//删除i位置的值并返回它
	int Length();				//返回表长
	bool Empty();				//检查表是否为空
	void Clear();				//清空表
	void CirListTraverse();	//遍历表中的元素
	void Connect(CirList<T> &lst2);	//将两个循环链表连接起来
	void Part(CirList<T> &lst2, int i);		//从i位置开始将后面的拆分到lst2
};

//创建容量为m的空循环链表
template<typename T>
CirList<T>::
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值