qq_26408019
2019-02-21 18:01单_循环链表_最后连接部分不理解
int InitCLinkList(CLinkList list)
{
int data = 0;
CLinkNode target = NULL;
CLinkNode* head_node = NULL;
printf("请输入结点数据,0代表结束初始化:\n");
while (1)
{
scanf("%d", &data);
if (data == 0)
break; //退出循环标志,用户输入0 表示结束输入数据
if (*list == NULL)
{
CLinkNode* head= (CLinkNode*)malloc(sizeof(CLinkNode));
*list = head;//链表指向头结点
CLinkNode* node = (CLinkNode*)malloc(sizeof(CLinkNode));
node->data = data;
node->next = head;
head->next = node;
}else{
//如果循环链表不为空 链尾部插入数据
//通过循环 找到尾结点,怎样判断是否是尾结点?当结点的指针域指向头结点时为尾结点,这样才能形成环嘛
//循环结束后target 指向尾结点
//for 循环下好好理解下!target初始化为第一个结点指针
for (target = (*list)->next; target->next != *list; target = target->next);
head_node = target->next;
CLinkNode* node = (CLinkNode*)malloc(sizeof(CLinkNode));
node->data = data;
node->next = head_node; //这个已经指向头了。
target->next = node;//将新结点插入尾部 //在用头指向它。那中间的不都没有了吗。 不理解。
}
}
return OK;
}
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- 【c语言/链表】两个有序单链表合成为一个有序单链表,自己写的代码运行出错,求助
- c语言
- 1个回答
- 如何理解链表中指针和节点的意义
- c语言
- c++
- 1个回答
- 关于c++中的双向循环链表
- c++
- 链表
- 数据
- 3个回答
- 入门..链表求集合的并集和交集,不知道怎么办。
- 链表
- 2个回答
- 链表里一个节点等于他的下一个节点不可以吗?
- c++
- 指针
- 链表
- 2个回答
换一换