离散存储【链表】
定义:
n个节点离散分配
彼此通过指针相连接
每个节点只有一个前驱节点 每一个节点只有一个 后续节点 首节点没有前驱节点 尾节点没有后续节点
专业术语:
首节点 : 第一个有效的节点
尾节点: 最后一个有效节点
头结点:头结点的数据类型和首节点的数据类型一样
第一个有效节点之前的那个节点 并不存放有效数据 而且也没有存放有效节点的个数 加头结点的目的主要是为了方便对链表的操作
头指针: 指向头结点的指针变量
尾指针: 指向尾结点的指针变量
确定链表需要几个参数:只需要一个参数:头指针 因为通过头指针可以推算出链表的其他所有信息 (通过头指针 可以知道头结点的地址 进而找到头结点 而通过头结点 可以找到首节点 通过首节点依次往下可以找到第二 第三 第n个节点 然后因为尾节点的指针指向尾空 所以也可以判断出哪个是尾节点 )
节点的代码定义
# include <stdio.h>
struct Node
{
int data; // 数据域
struct Node * pNext; // 指针域
};
int main(void)
{
return 0;
}
链表的分类:单链表
双链表 : 每一个节点有两个指针域
循环链表: 能通过任何一个节点来找到其他所有节点
非循环链表
算法:
遍历
查找
清空
销毁
求长度
排序
插入一个节点