目录
1、顺序表的优缺点
2、链式存储的线性表
3、单向不循环链表实现
1、顺序表的优缺点
顺序表的优点是:
由于顺序表数据元素的内存地址都是连续的,所以可以实现随机访问,而且不需要多余的信息来描述相关的数据,所以存储密度高。
顺序表的缺点是:
顺序表的数据在进行增删的时候,需要移动成片的内存,另外,当数据元素的数量较多的时候,需要申请一块较大的连续的内存,同时当数据元素的数量的改变比较剧烈,顺序表不灵活。
2、链式存储的线性表
链式存储指的是采用离散的内存单元来存储数据元素,用户需要使用某种方式把所有的数据元素连接起来,这样就可以变为链式线性表,简称为链表,链表可以高效的使用碎片化内存。
顺序表和链式表的区别:顺序表使用连续的内存,链式表使用离散的内存空间。
链表中的每个数据元素的地址是不固定的,所以每个数据元素都应该使用一个指针指向直接后继的内存地址,当然最后一个数据元素没有直接后继,所以最后一个数据元素指向NULL即可,作为用户只需要知道第一个数据元素的内存地址,就可以访问后继元素了。
链式存储,则线性表中每一个数据元素除了存储自身数据之外,还需要额外存储直接后继的地址,所以链表中的每一个数据元素都是由两部分组成:存储自身数据的部分被称为数据域,存储直接后继地址的部分被称为指针域,数据域和指针域组成的数据元素被称为结点(Node)。
链表中的数据元素=数据域+指针域
根据链表的结点的指针域的数量以及根据链表的首尾是否相连,把链式线性表分为以下几种:
- 单向链表
- 单向循环链表
- 双向链表
- 双向循环链表
- 内核链表
这几种链表的使用规则差不多,只不过指针域数量不同。
3、单向不循环链表实现
/*******************************************************
* @file:LinkedList.c
* @brief:单向不循环链表封装
* @author:demon_xing2024@163.com
* @date:2024/06/15
* @version:V1.0
* @attention:
* 头节点不存放数据
* 链表中所有节点的指针域都指向下一个节点
* 链表中最后一个节点的指针域指向NULL
* 链表中所有节点是动态分配内存的
* 链表中所有节点的数据域类型是相同的
* @history
* Date Version Author Notes
* 2024-6-15 0.0.1 demon_xing first version
* Copyright (c) 2024, demon_xing2024@163.com All Rights Reserved.
* *******************************************************/
/*****************************************************************
* @brief:头文件
**********************************