#include<iostream>
/*
双向循环链表
一般来说循环双链表带头节点操作会方便一些的
不带头结点的循环双链表适合浏览图片
*/
using namespace std;
//设计节点
typedef struct doublelinknode
{
int data;
struct doublelinknode* prior;
struct doublelinknode* next;
}Node;
//初始化链表
Node* Initdoublelinklist()
{
Node* head = new Node;
head = NULL;
return head;
}
//新建一个节点
Node* Newnode(int data)
{
Node* s = new Node;
s->data = data;
s->next = s;
s->prior = s;
//cout << __LINE__ << endl;
return s;
}
//头插法插入一个节点
void AddHeadDList(Node** head, int data)
{
Node* s = Newnode(data);
if (head == NULL)
{
*head = s;
return;
}
s->prior = *head;
s->next = (*head)->next;
(*head)->next->prior = s;
(*head)->next = s;
}
//尾部插入一个节点
void AddTailDList(Node** head, int data)
{
Node* s = Newnode(data); //33
if (*head == NULL
最详细的不带头结点的双循环链表
最新推荐文章于 2023-05-31 11:03:20 发布