C语言中链表的原理?该如何使用?坐等指教 多谢啦
3个回答
展开全部
一楼的答案很标准了,我再通俗地说明下-----你把链表看成一辆火车,火车头就是头结点,然后每节车厢有号码标识,比如1号车厢车尾就连上2号车厢车头,这就像1号节点的指针域里面存储的是下一个节点的地址,每节车厢里面容纳乘客的地方就相当于数据域。
至于链表的种类有很多,有单链表的,双连表的,循环链表的,还有有头结点和无头节点的。总之原理都大同小异。
对于链表的操作主要有插入和删除:
插入:在第i个节点之前插入一个节点:
1、首先查找第i-1个节点 if(p满足条件)
2、给新节点分配空间q =(Node*)malloc(sizeof(Node));给q数据域赋值。
3、q->next = p->next;
4、p->next = q;
删除:如果要删除符合条件的节点(删除q所指节点)
1、首先找到要删除节点的前驱节点 if(p->next->data满足条件)
2、用q指向要删除的节点 q = p->next;
3、p->next = q->next;
4、free(q);
说再多不如你实际操作,你可以写一个很简单的链表数据试试...
希望对你有所帮助!
至于链表的种类有很多,有单链表的,双连表的,循环链表的,还有有头结点和无头节点的。总之原理都大同小异。
对于链表的操作主要有插入和删除:
插入:在第i个节点之前插入一个节点:
1、首先查找第i-1个节点 if(p满足条件)
2、给新节点分配空间q =(Node*)malloc(sizeof(Node));给q数据域赋值。
3、q->next = p->next;
4、p->next = q;
删除:如果要删除符合条件的节点(删除q所指节点)
1、首先找到要删除节点的前驱节点 if(p->next->data满足条件)
2、用q指向要删除的节点 q = p->next;
3、p->next = q->next;
4、free(q);
说再多不如你实际操作,你可以写一个很简单的链表数据试试...
希望对你有所帮助!
展开全部
C语言中的链表中的结点包括数据域和指针域,数据域存放数据,指针域存放下一个结点的地址,通过这种关系把各结点联系起来,形成链状结构,就是链表,学好链表对学习数据结构很有帮助的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
多看书。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询