循环链表与单链表的最大区别就在于:单链表最后一个节点指向NULL,而循环链表的最后一个节点指向的是头节点
至于其他的操作与单链表相似,详细请看<<单链表>>
所有的操作几乎都是将判断是否为空,改为是否指向头结点
#include<iostream>
#include<Windows.h>
#include<stdlib.h>
using namespace std;
typedef struct LinkNode {
int date;
struct LinkNode* next;
}LinkList,LinkNode;
bool initLink(LinkList* &L) {
L = new LinkList;
L->date = -1;
L->next = L;
return true;
}
bool LinkInserct(LinkList* &L,int e) {
LinkList* last,*s;
s = new LinkList;
last = L;
s->date = e;
if (L->next == L) {
last->next = s;
s->next = L;
}
else {
while (last->next != L) last = last->next;
last->next = s;
s->next = L;
}
return true;
}
bool LinkList_ptint(LinkList* &L) {
LinkList* p;
if (L->next == L)return false;
p = L->next;
while (p != L) {
cout << p->date << " ";
p = p->next;
}
cout << endl;
return true;
}
int main() {
LinkList* L;
//1.初始化
initLink(L);
//2.添加数据
for (int i = 1;i <= 10;i++) {
LinkInserct(L,i);
}
//3.输出
LinkList_ptint(L);
system("pause");
return 0;
}