#include<iostream>
#include<assert.h>
using namespace std;
typedef int DataType;
struct LinkNode
{
DataType _data;
LinkNode* _next;
LinkNode(const DataType& x)
:_data(x)
,_next(NULL)
{}
};
class Slist
{
public:
Slist()
:_head(NULL)
,_tail(NULL)
{}
~Slist()
{
Destory();
}
Slist(const Slist& s)
:_head(NULL)
, _tail(NULL)
{
if (s._head == NULL)
return;
LinkNode* begin = s._head;
do{
this->PushBack(begin->_data);
begin = begin->_next;
} while (begin != s._head);
}
Slist& operator = (const Slist& s)
{
if (this != &s)
{
this->Destory();
LinkNode* begin = s._head;
do{
this->PushBack(begin->_data);
begin = begin->_next;
} while (begin != s._head);
}
return *this;
}
void Destory()
{
LinkNode* begin = _head;
while (begin!=_tail)
{
LinkNode* del = begin;
begin = begin
C++实现单向循环链表
最新推荐文章于 2024-08-03 14:56:14 发布
本文详细介绍了如何使用C++实现单向循环链表,包括构造、拷贝构造、赋值操作、销毁、打印、尾插、尾删、头插、头删、查找、删除、反转和插入等操作。示例代码展示了链表的创建和基本操作。
摘要由CSDN通过智能技术生成