一、单链表 1. 基本概念 单链表(Singly Linked List)是一种链表结构,其中每个节点包含一个数据域和一个指针域,指针域指向下一个节点。链表的第一个节点称为头节点,最后一个节点的指针域指向NULL,表示链表的结束。 节点结构定义 structNode{intdata;// 数据域structNode*next;// 指针域,指向下一个节点}; 2....
对于没有哨兵的单链表,当链表中只存在一个节点,需要进行单独处理。从而代码的复杂性增加。但如果设计了哨兵结点,则第一个结点的处理与其他结点一致。但处理链表数据时这个哨兵结点属于无效数据,我们需要规避这个数据,也需要进行处理。 本文选择的是无哨兵链表。 二:创建源文件和头文件 (1)头文件 头文件SingleLinkedLis...
头指针:一个和结点类型相同的指针,它的特点是:永远指向链表中的第一个结点。上文提到过,我们需要记录链表中第一个元素的存储位置,就是用头指针实现。 结点:链表中的节点又细分为头结点、首元结点和其它结点: 头结点:某些场景中,为了方便解决问题,会故意在链表的开头放置一个空结点,这样的结点就称为头结点。也...
概念:单链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针单向链接次序实现的。 逻辑结构图如下: 根据单链表的逻辑结构可以想到单链表这种结构体中包含存入的数据和指向下一个结构体的结构体指针。 物理结构图如下: 单链表需要增加空间存储新数据时只需要动态申请一个结构体大小...
1.单链表的初始化 初始化一个单链表我们首先需要创建一个新结点。 在C语言中,malloc函数可以给我们分配指定长度的内存空间。 LinkedListinit_link_list(){ LinkedList L = (LinkedList)malloc(sizeof(LNode));// 创建头结点L->next =NULL;// 将头结点的指针域置为NULLreturnL;// 返回} ...
链表又称单链表、链式存储结构,用于存储逻辑关系为“一对一”的数据。 和顺序表不同,使用链表存储数据,不强制要求数据在内存中集中存储,各个元素可以分散存储在内存中。例如,使用链表存储 {1,2,3},各个元素在内存中的存储状态可能是: 图1 数据分散存储在内存中 ...
在单链表中,头节点是第一个节点,它指向链表的第一个元素。最后一个节点称为尾节点,它没有指向其他节点的指针。 每个节点包含两个部分:数据部分和指针部分。数据部分存储实际的数据值,而指针部分存储下一个节点的地址。 以下是单链表的一些基本操作: (1)插入:向链表的头部或尾部插入新节点。
AddListTill函数的功能是尾添加的方式在链表的尾部增加一个节点,其中输入的参数是这个节点的数据。首先创建一个节点并申请一个节点的内存,之后对传入节点的数据进行赋值,注意尾添加的新节点的指针应指向空;此时分两种情况,1是链表中一个节点都没有,那么这个节点既是头结点也是尾结点;2是已经有节点,那么新添加的节点...
链表的概念和结构: 概念:链表是一种物理存储结构上非连续,非顺序的结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 下面是我们想象出来的图: 编辑 而实际上的图: 编辑 链表的结构多样,第一个就是不带头节点的链表,第二个是带哨兵位的头节点,而哨兵位是没有任何有效数据的。