循环链表
单链表终端结点的指针指向头节点
空表
非空循环链表
循环链表的创建
参考 https://blog.csdn.net/qq_29542611/article/details/79029540
typedef struct CLinkNode
{
Elemtype data;
struct CLinkNode *next;
}CLinkNode, *CLinkList;
void IniteCLinkList(CLinkList *L) {
int data = 0;
CLinkNode *target = NULL;
CLinkNode *head_node = NULL;
cout << "输入数据,0代表结束" << endl;
while (1) {
cin >> data;
if (data == 0) {
break;
}
if (*L == NULL) {
CLinkNode *head = (CLinkNode*)malloc(sizeof(CLinkNode));
*L = head; //链表指向头结点
CLinkNode *node = (CLinkNode*)malloc(sizeof(CLinkNode));
node->data = data;
node->next = head;
head->next = node;
}
else
{
for (target = (*L)->next; target->next != *L; target = head_node = target->next) {
head_node = target->next;
CLinkNode* node = (CLinkNode*)malloc(sizeof(CLinkNode));
node->data = data;
node->next = head_node;
target->next = node;//将新结点插入尾部
}
}
}
}