//头文件
#ifndef _LIST_H
#define _LIST_H
#include<iostream>
using namespace std;
template<class Type>
class CList;
template<class Type>
class ListNode
{
friend class CList<Type>;
public:
ListNode() :data(Type()), next(NULL)
{
}
ListNode(Type d, ListNode<Type> *n = NULL)
:data(d), next(n)
{}
~ListNode()
{}
private:
Type data;
ListNode<Type> *next;
};
template<class Type>
class CList
{
public:
CList()
{
first = last = Buynode();
last->next = first;
}
~CList()
{
destroy();
}
public:
void push_back(const Type &x) //尾插``
{
ListNode<Type> *s = Buynode(x);
last->next = s;
last = s;
last->next = first;
first->data++;
}
void push_front(const Type &x) //头插``
{
ListNode<Type> *s = Buynode(x);
s->next = first->next;
first->next = s;
last = s;
for (int i = 0; i < first->data; i++)
{
last = last->next;
}
first->data++;
}
void pop_back() //尾删``
{
if (first->data == 0)
return;
ListNode<Type> *s = first;
for (int i = 1; i < first->data; i++)
{
s = s->next;
}
delete s->next;
s->next = first;
last = s;
first->data--;
}
void pop_front() //头删``
{
if (first->data == 0)
{
ret
【数据结构】用C++实现单循环链表的各种操作(包括头删,尾删,插入,逆序,摧毁,清空等等)
本文详细介绍了如何使用C++编程实现单循环链表的各种操作,包括头节点删除、尾节点删除、元素插入、链表逆序、摧毁链表以及清空链表的方法,通过类模板实现高效且灵活的链表管理。
摘要由CSDN通过智能技术生成