顺序表汇总

基于前几期的顺序表 做了代码的汇总 以及C语言的实现过程。完善了好多教程只有伪代码的不足。大家看完可以在编译器上多练习 来加深对于该数据结构的理解!!!
摘要由CSDN通过智能技术生成

线性表基本概念

线性表,全名为线性存储结构。使用线性表存储数据的方式可以这样理解,即“把所有数据用一根线儿串起来,再存储到物理空间中”。

将具有“一对一”关系的数据“线性”地存储到物理空间中,这种存储结构就称为线性存储结构(简称线性表)。

线性表存储结构可细分为顺序存储结构和链式存储结构。

将数据依次存储在连续的整块物理空间中,这种存储结构称为顺序存储结构(简称顺序表);见图左

数据分散的存储在物理空间中,通过一根线保存着它们之间的逻辑关系,这种存储结构称为链式存储结构(简称链表);见图右 

前驱和后继

另外,对于具有“一对一”逻辑关系的数据,我们一直在用“某一元素的左侧(前边)或右侧(后边)”这样不专业的词,其实线性表中有更准确的术语:

某一元素的左侧相邻元素称为“直接前驱”,位于此元素左侧的所有元素都统称为“前驱元素”;

某一元素的右侧相邻元素称为“直接后继”,位于此元素右侧的所有元素都统称为“后继元素”;

顺序表的初始化

使用顺序表存储数据之前,除了要申请足够大小的物理空间之外,为了方便后期使用表中的数据,顺序表还需要实时记录以下 2 项数据:

1.顺序表申请的存储容量

2.顺序表的长度 也就是存储表中数据元素的个数

正常状态下,顺序表申请的存储容量要大于顺序表的长度。

typedef struct Table{
    int * head;//声明了一个名为head的长度不确定的数组 也叫“动态数组”
    int length;//记录当时顺序表的长度
    int size;//记录顺序表的存储容量
}table;

注意,head 是我们声明的一个未初始化的动态数组,不要只把它看做是普通的指针。

接下来开始学习顺序表的初始化

1.给head动态数据申请足够大小的物理空间

2.给size和length赋初值

#def
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值