不带头节点链表
在本人之前的博文 ———— 《(带头节点的链表) 宿舍管理系统》中,本人介绍了链表的基本知识点。
那么,在本人数据结构与算法的专栏的开始,本人就来介绍下 不带头节点链表:
不带头节点链表
由于本人在讲解带头节点链表的时候就已经讲解过了链表基本的增、删、改、查 操作,所以,本人在这里就不对这些重复的知识点进行讲解了。
本人在本篇博文中主要讲解两个知识点 ———— 链表的倒序 和 两个链表的连接:
链表的倒序:
首先是 链表的倒序:
void reverseStu(STU *head) {
STU *i = NULL;
STU *j = NULL;
j = head;
while(result->next) {
i = j;
j = j->next;
j->next = i;
}
head->next = NULL;
head = j;
}
最后是 链表的合并:
链表的合并:
void Combine(STU *head1, STU *head2){
STU *p;
p = head1->next;
while(NULL != p->next) {
p = p->next;
}
p->next = head2;
}
其实我们看到这里,也发现其实带头节点链表和不带头节点链表大致思路一致,甚至连好多代码都是大致相同的。
这是因为带头节点链表和不带头节点链表区别在于带头节点链表初始时给的是一个节点,而不带头节点链表最开始时给的是一个指针,其实相差也不是很大,我们掌握其中一种的使用方式,再了解与另一种的基本区别,就足够了。
链表的初步学习就结束了,好多数据结构课程的开头就是以不带头节点链表或者线性表开头的,但本人觉得不带头节点链表应该放在C里去讲解,因为本人觉得这里的知识点相对过于基础,可能本人的学艺还不太精湛,哈哈,见谅!