//【数据结构】用C++实现单循环链表的各种操作(包括头删,尾删,插入,逆序,摧毁,清空等等)
//头文件
#ifndef _CDLIST_H
#define _CDLIST_H
#include<iostream>
using namespace std;
template<class Type>
class CDList;
template<class Type>
class ListNode
{
friend class CDList<Type>;
public:
ListNode() :data(Type()), next(NULL), prio(NULL)
{}
ListNode(Type d, ListNode<Type> *n = NULL, ListNode<Type> *m = NULL)
:data(d), next(n), prio(m)
{}
~ListNode()
{}
private:
Type data;
ListNode<Type> *next;
ListNode<Type> *prio;
};
template<class Type>
class CDList
{
public:
CDList()
{
first = last = Buynode();
last->next = first;
first->prio = last;
}
~CDList()
{
destroy();
}
public:
void push_back(const Type &x) //尾插``
{
ListNode<Type> *s = Buynode(x);
last->next = s;
s->prio = last;
s->next = first;
first->prio = s;
last = s;
first->data++;
}
void push_front(const Type &x) //头插``
{
if (first->data == 0)
{
push_back(x);
return;
}
ListNode<Type> *s = Buynode(x);
s->next = first->next;
first->next->prio = s;
first->next = s;
s->prio = first;
first->data++;
}
void pop_back() //尾删``
{
if (first->data == 0)
return;
ListNode<Type> *p = last;
last = last->prio;
last->next = first;
first->prio = last;
delete
【数据结构】用C++实现双循环链表的各种操作(包括头删,尾删,插入,逆序,摧毁,清空等等)
本文详细介绍了如何使用C++实现双循环链表的各种操作,包括头插、尾插、头删、尾删、插入、逆序、摧毁、清空等,并提供了完整的源代码实现。通过示例代码,读者可以理解并掌握双循环链表的基本操作方法。
摘要由CSDN通过智能技术生成