复习
数据结构
逻辑结构–线性结构–顺序表+链表
顺序表 (数组)
应用
特点
地址连续 大小固定 紧凑存储 前驱 后继 访问方便
删除和插入的时候,需要移动元素
操作
创建顺序表
增加、插入
删除
查询
修改
销毁顺序表
今天的内容
链表
==特点 ==
地址可以不连续 大小不固定
删除和插入的时候,不需要移动元素,比较方便
访问不方便,只能从头结点开始访问
术语
单向
链表中任意一个结点,只有一个指针域,存放下一个结点的地址。
双向
链表中任意一个结点,有两个指针域,分别存放下一个结点的地址和前一个结点的地址。
头结点
数据域为空(数据域不存放有效数据)
首结点
头结点的下一个结点
==尾结点 ==
链表中某个结点的指针域为空,就是尾结点。
循环
尾结点保存头结点的地址
空链表
头结点的指针域为空就是空链表。
带头结点的单向不循环的链表 — 链表
定义一个数据类型来描述链表
struct student
{};
typedef struct student data_t;
struct node
{
data_t data; //数据域
struct node * pNext; //指针域
};
typedef struct node LIST;
相关操作
创建链表
插入
查询
修改
删除
显示
销毁链表
//p = p->pNext;
int main()
{
创建链表
把信息插入链表中
查询
修改
删除
显示
销毁链表
}