数据结构(六)——线性表的顺序实现

🏠个人主页:尘觉主页

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉

在csdn获奖荣誉: 🏆csdn城市之星2名

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓csdn2023年后端赛道第第七

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓csdn2023年长沙赛道第一

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓csdn2023年大二赛道第二

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓Java全栈群星计划top前5

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🤗 端午大礼包获得者

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🥰阿里云专家博主

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 😉亚马逊DyamoDB结营

获得国家荣誉3项省级荣誉4项以及多项校院级

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰

如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊

文章目录

数据结构(六)------线性表的顺序实现

线性表的存储结构

在计算机中线性表有两种存储结构分别是顺序存储结构和链式存储结构。

线性表的顺序表示(又称顺序存储结构或顺序映象)

顺序存储定义:把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构。

线性表的顺序存储结构是指用一段地址连续的存储单元依次存储线性表的数据元素。

例如:线性表(1,2,3,4,5,6)

线性表的第1个数据元素a1的存储位置称为线性表的起始位置或基地址.

顺序存储结构的寻址公式

计算地址只算一次与处理数据的规模无关数量级是O(1)这种运算叫随机存取。

数组长度与线性表长度

  • 数组长度,线性表最多可容纳数据元素的个数
  • 线性表长度(length):当前数据元素个数

一辆公交车最多容纳23人(数组长度/线性表的最大存储容量),但现在里面坐着8(线性表中当前元素个数)个数。

由于顺序表中的元素要求地址连续、依次存放、随机存取、类型相同,高级程序设计语言当中可以用一维数组来实现

一维数组的定义方式:

  • 类型说明符 数组名[常量表达式]
  • 说明:常量表达式中可以包含常量和符号常量(宏命名),不能包含变量。即C语言中不允许对数组的大小作动态定义。
  • 线性表经常进行插入和删除的操作长度可变而C中数组的长度是不可变的。
用一个额外的变量表示线性表的长度

这里,我们就发现描述顺序存储结构芾要三个属性:

  • 存储空间的起始位置:数组daa,它的存储位置就是存储空间的存储位置。
  • 线性表的最大存储容量:数组长度
  • Maxsize线性表的当前长度: length


只要找到基地址就可以随机存取但说好的数组呢不着急下面来解答? 只要找到基地址就可以随机存取但说好的数组呢不着急下面来解答? 只要找到基地址就可以随机存取但说好的数组呢不着急下面来解答?

ElemType是根据实际问题,你需要什么类型的数组就定义成什么,一般是根据问题定义一个结构体或者是 typedef char ElemType

数组的定义

数组名其实就是首元素的地址所以也可以直接定义一个指针。数组的大小用相应的函数来动态分配内存

用结构体变量名.成员变量名对成员访问;指针:SqList *p=&L;p->data=...;

  1. malloc()函数是在程序运行时分配内存的重要工具接受一个参数:所需的内存字节数但并不会为其赋名.然而,但他确实返回了动态分配内存块的首地址.因此可以把该地址赋给一个指针变量,并使用指针访问这块内存注意要强制类型转换(类型说明符 * )malloc(size);

    如向内存要100个int(类型说明符 * )malloc(100*sizeof(int));

  2. sizeof(x)计算变量/数据类型x所占据的字节数

  3. free§释放指针p所指变量的存储空间,即彻底删除一个变量需要加载头文件<stdlib.h>

C++内容

😁热门专栏推荐
想学习vue的可以看看这个

java基础合集

数据库合集

redis合集

nginx合集

linux合集

手写机制

微服务组件

spring_尘觉

springMVC

mybits

等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

相关推荐
醉陌离3 分钟前
渗透测试笔记——shodan(4)
笔记
LateBloomer77717 分钟前
FreeRTOS——信号量
笔记·stm32·学习·freertos
legend_jz21 分钟前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
Komorebi.py22 分钟前
【Linux】-学习笔记04
linux·笔记·学习
莫叫石榴姐42 分钟前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘
fengbizhe1 小时前
笔试-笔记2
c++·笔记
余为民同志1 小时前
mini-lsm通关笔记Week2Day4
笔记
墨染风华不染尘1 小时前
python之开发笔记
开发语言·笔记·python
徐霞客3202 小时前
Qt入门1——认识Qt的几个常用头文件和常用函数
开发语言·c++·笔记·qt
茶猫_2 小时前
力扣面试题 - 25 二进制数转字符串
c语言·算法·leetcode·职场和发展