单向循环链表与单向链表的结点结构相同,每个结点都有一个数据域、一个指针域。
数据域用来存储结点的数据,指针域用来存储下一个结点所在的内存空间地址。
两者不同的是,单向链表末结点的指针域为NULL,而单向循环链表末结点的指针域存储了头结点所在的内存空间地址。
这里实现了单向循环链表的六个基本功能,初始化链表、添加结点(头插法、尾插法)、删除结点、反转链表、遍历链表。
一、代码结构
1.1单向循环链表的数据结构
typedef struct node
{
int data;//数据域
struct node * next;//指针域
}Node;
1.2单向循环链表的六个方法
1.2.1 Node * initialize()
初始化单向循环链表,返回头结点的指针
1.2.2 void headInsert(Node * head,int data)
添加结点(头插法),每次插入的新结点都会作为第一个结点存在
1.2.3 void tailInsert(Node * head,int data)
添加结点(尾插法),每次插入的新结点都会作为末结点存在
1.2.4 int delete(Node * head,int data)
删除结点,将指定数据的结点删除,删除成功返回1,删除失败返回0
1.2.5 void reverse(Node * head)
反转链表,将链表结点