数据结构---循环链表

循环链表与单链表的最大区别就在于:单链表最后一个节点指向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;
}

猜你喜欢

转载自blog.csdn.net/weixin_49324123/article/details/111176852