[数据结构]第二章线性表(2)——顺序表

顺序表

##顺序表的基本概念
[数据结构]第二章线性表(2)——顺序表

顺序表的定义

[数据结构]第二章线性表(2)——顺序表

顺序表的初始化

静态分配

[数据结构]第二章线性表(2)——顺序表

具体实现:

[数据结构]第二章线性表(2)——顺序表

问题反思
  1. 如果“数组”存满留怎么办?

可以放弃治疗,顺序表长刚开始确定后就无法更改(存储空间是静态的)

  1. 如果一开始就声明一个很大的内存空间呢?会存在什么问题?

浪费,会造成大量的浪费。

动态分配

[数据结构]第二章线性表(2)——顺序表

具体实现方式

[数据结构]第二章线性表(2)——顺序表

总结

[数据结构]第二章线性表(2)——顺序表

[数据结构]第二章线性表(2)——顺序表

顺序表的基本操作

插入

ListInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定元素e。

[数据结构]第二章线性表(2)——顺序表

详细实现方式:

[数据结构]第二章线性表(2)——顺序表

优化之后:

[数据结构]第二章线性表(2)——顺序表

#####插入操作的时间复杂度分析

[数据结构]第二章线性表(2)——顺序表

删除

[数据结构]第二章线性表(2)——顺序表

删除操作的时间复杂度分析

[数据结构]第二章线性表(2)——顺序表

总结反思

[数据结构]第二章线性表(2)——顺序表

查找

#####按位查找

GetElem(L,i):按位查找操作,获取表L中第i个位置的元素的值

静态分配状态下的实现方式

[数据结构]第二章线性表(2)——顺序表

动态分配状态下的实现方式

[数据结构]第二章线性表(2)——顺序表

用指针加数组下标的方式取数据的时候,数组类型决定着取数据时取几个字节!!

按位查找的时间复杂度分析

[数据结构]第二章线性表(2)——顺序表

按值查找

[数据结构]第二章线性表(2)——顺序表

结构类型的比较

[数据结构]第二章线性表(2)——顺序表

注意:考研初试中华,手写代码可以直接用“==”,无论是ElemType是基本数据类型还是结构类型,手写代码主要考察学生是否理解算法思想,不会严格要求代码完全可运行

有的学校复试考《C语言程序设计》,那么。。。也许就要语法严格一些!

按值查找的时间复杂度

[数据结构]第二章线性表(2)——顺序表

总结反思

[数据结构]第二章线性表(2)——顺序表