数据结构(长期更新)第2讲:顺序表(一)
数据结构(长期更新)第2讲:
顺序表(一)
跟着潼心走,轻松拿捏C语言,困惑通通走,一去不回头~欢迎开始今天的学习内容,你的支持就是博主最大的动力。
博主主页:潼心1412o-CSDN博客
目录
数据结构(长期更新)第2讲:
顺序表(一)
前言
2.1 线性表
2.2 顺序表(sequence list)
2.3 顺序表的初始化
前言
先说个题外话,在我们学习的过程中,可能会出现代码怎么都找不出来bug的情况
我们可以尝试使用文本在线对比工具:BEJSON
然后今天我们正式学习第一种数据结构——顺序表
我们知道数据结构可以在逻辑上和物理结构上进行分类,那么第一类就是线性表
2.1 线性表
线性表(linear list)就是n个相同类型数据的有序序列
有序表现在逻辑上,具体可根据物理结构进行划分
常见的有顺序表,链表,栈,队列,字符串。。。。。。
其中顺序表就是物理结构有序,链表就是物理结构无序的
但因为他们逻辑结构都有序,所以都属于线性表
2.2 顺序表(sequence list)
概念:
物理地址连续存储数据元素的线性结构,一般情况下用数组存储
和数组的关系:
顺序表的底层结构是数组,数组是顺序表的实现方式
分类:
静态顺序表和动态顺序表(依据顺序表的长度是否可以改变,可以联想动态内存申请)
静态顺序表基本构成如下
typedef struct Seqlist{int a[N];//定长数组int size;//有效数据个数
}SL;
静态顺序表具有定长数组的缺陷:空间少了不够,多了浪费
结构体和变量类型也可取别名typedef方便一键修改
动态顺序表就可以通过改变空间容量来进行增容
typedef struct Seqlist{int a[N];//定长数组int size;//有效数据个数int capacity;//空间容量
}SL;
其底层数组空间不断变化
2.3 顺序表的初始化
这里我们先回顾一下多文件操作
三个文件,一个.h头文件用于放函数的声明,结构体的定义等
一个.c文件用于初始化和定义函数,一个.c文件用于执行测试
为啥,因为我们在进行初始化时使用的是传值调用,而非传址调用
所以初始化失败,正确方法如下
注意这里用指针访问结构体元素就要用箭头,不能用点了
其他操作且听下回分解
好了今天的学习内容就到这里啦,谢谢你的陪伴,我是潼心,下次再见~如果这篇文章对你有帮助的话。请务必给主播一个一键三连,球球了,这对主播很重要~
博主主页:潼心1412o-CSDN博客