1、链式存储:用一组任意的存储单元存储线性表, 逻辑上相邻的结点 在物理位置上不一定相邻,结点间的逻辑关系由存储结点时附加的指针字 段表示
2、链表:采用链式存储方法的线性表称为链表。
3、每一个结只包含一个指针域的链表,称为单链表 为了正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须 存储指示其直接后继结点的地址(或位置),称为指针(pointer)或链(link), 这两部分组成了链表中的结点结构 链表结点结构 data :数据域,存放结点的值。next :指针域,存放结点的直接后 继的地址。 带头结点的单链表的逻辑状态 物理存储方式 2.3.2 单链表的表示与操作 2.3.2.1 存储结构表示 结点是通过动态分配和释放来的实现,即需要时分配,不需要时释 放。实现时是分别使用C语言提供的标准函数:malloc() ,realloc(), sizeof() ,free() .
动态分配 p=(LNode*)malloc(sizeof(LNode)); typedef int ElemType; typedef struct Lnode { ElemType data; /*数据域,保存结点的值 */ struct Lnode *next; /*指针域*/ }LNode; /*结点的类型 */ 动态释放 free(p) ;