1.数据结构与算法
学习数据结构,我们总得知道什么是数据结构,数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种关系的数据元素的集合。讲到数据结构,我们就不得不顺便讲讲算法,简单的说,算法就是经一系列计算,将输入变为输出的过程。
2.线性表是n个具有相同特征的数据元素的有限序列,常见线性表:顺序表,链表,栈,队列,字符串......
线性表在逻辑上一定是线性的,但在物理结构上却不一定是线性的,下面让我们一起了解在逻辑结构与物理结构都是线性的线性表——顺序表。
(1)顺序表
概念:顺序表是⽤⼀段物理地址连续的存储单元依次存储数据元素的线性结构,⼀般情况下采⽤数组存储。这是有人会问了,既然是数组存储,那么顺序表与数组有什么区别吗?那————当然是有的。
通过这张形象的图片,大家应该明白了顺序表与数组的差别,顺序表是数组加上一系列不同的算法。
而顺序表中又分为静态顺序表与动态顺序表
1、静态顺序表
使用固定长度的数组存储元素,讲到这,大家应该都明白了它最明显的缺点,空间给少了不够⽤,给多了造成空间浪费,所以,人们最常用的就是动态顺序表。
2、动态顺序表
可增容是动态顺序表的优势,可改变容量的数组?不就是c语言里学的malloc申请空间和realloc扩展空间嘛,所以,大家忘记的可得去好好复习复习。
这是顺序表的基本类型,需要通过结构体来构建一个新的类型,arr用来记录申请的动态空间,space用来记录数组的最大存储值,size则用来记录数组中的元素个数。
下面则是顺序表中简单算法的实现
最后,在对顺序表进行插入与删除操作时千万不要忘记改变size。