C语言强化-2.线性表&代码

与408的关联:1. 顺序表结合排序出了很多大题。2. 链表本身出很多大题!

顺序表的顺序表示原理

  1. 线性表的特点:
    1. 表中元素的个数是有限
    2. 表中元素的数据类型都相同。意味着每一个元素都占用相同大小的空间。
    3. 表中元素具有逻辑上的顺序性,在序列中各元素排序有其先后顺序。
  2. 线性表第一个元素的数组下标是0

线性表的顺序表示(顺序表)

顺序表的定义

#define MaxSize 50  //定义线性表的长度
typedef struct{    
	ElemType data[MaxSize];  //顺序表的元素
	int len;    //顺序表的当前长度
}SqList;    顺序表的类型定义

优点:

  1. 可以随机存取(根据表头元素地址和元素序号)表中任意一个元素。
  2. 存储密度高,每个结点只存储数据元素。

缺点:

  1. 插入和删除操作需要移动大量元素。
  2. 线性表变化较大时,难以确定存储空间的容量。
  3. 存储分配需要一整段连续的存储空间,不够灵活。 

插入操作

  • 最好情况:新元素插入到表尾,不需要移动元素,最好时间复杂度 = O(1)
  • 最坏情况:新元素插入到表头,需要将原有的n个元素全都向后移动,最坏时间复杂度 = O(n)
  • 平均情况:假设新元素插入到任何一个位置的概率相同,平均移动元素的次数是n/2,时间复杂度 = O(n)
//判断插入位置i是都合法(满足i <= length + 1)
//判断存储空间是否已满(即插入e后是否会超出数组长度)
for(int j = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Annabelle.02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值