数据结构知识总结(C语言)(一)——线性表

***特点:***在数据元素的非空有限集当中,存在唯一一个称为“第一个”和一个被称为“最后一个”的数据元素,除此之外其他每个元素都只有一个前驱和一个后驱。
线性表中的元素具有相同的特征,属于同一类数据对象。(比如由26个字母所组成的字母表,比如一周每天的平均温度)
线性表的分类:
顺序表: 采用一组地址连续的存储单元依次存储线性表中的数据元素;
顺序表的定义和创建:可以用C语言中的一维数组表示:
#define MAXLISTLEN 100//最大列表长度
int ListLen = 0; //当前列表长度
int SeqListen[MAXLISTLEN];//顺序表
**对顺序表的操作主要有:**存取、插入、删除。其中存取的时间复杂度为O(1),插入和删除的时间复杂度都为O(n)。
顺序表的优缺点:
**优点:**访问元素时可以随机存取时间复杂度小;**缺点:**在进行插入或删除元素时需要进行大量的移动操作时间复杂度较大。

**链表结构:**链表与顺序表的数据在逻辑关系上是相同的,但两者在物理存储方式上却不一样,在顺序表中,逻辑相邻的元素在物理地址上也是相邻的,而链表结构逻辑相邻的元素在物理地址上不一定相邻而是用一个链指正来表示元素之间的关系。
链式存储的三种形式:线性链表(单链表)、循环链表、双向链表
在线性链表当中每个元素称为一个结点,结点包含两项内容:数据域、指针域。(数据域存放着数据元素的信息,指针域存放指向直接后继的指针)。
对链表的操作包括:查找、插入、删除,其时间复杂度为O(n),其中当删除已知(指定)结点后的结点时,时间复杂度为O(1)。
顺序表与链表的应用比较:
顺序表一般用于储存大量数据并且主要是用于查找(比如用数据库进行学籍管理)。
链表存储的元素经常要进行插入和删除操作(比如我们在晚上购物的购物车)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值