数组属于线性表吗,为什么

数组属于线性表,原因:线性表就是数据排成像一条线一样的结构,数组用一组连续的内存空间来存储一组具有相同类型的数据,它是一种线性表的实现,它是由固定大小的相同类型元素(数据元素)构成的有限序列,通过下标来访问元素。

一、数组属于线性表吗

数组属于线性表。

原因:线性表就是数据排成像一条线一样的结构,数组用一组连续的内存空间来存储一组具有相同类型的数据,它是一种线性表的实现,它是由固定大小的相同类型元素(数据元素)构成的有限序列,通过下标来访问元素。数组中的元素在内存中是连续存储的,因此可以通过下标来访问数组中的任意元素,这也是数组的特点之一。

二、数组array

数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。

数组的常用操作:

1、数组的创建


var arrayObj = new Array(); //创建一个数组
var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值

2、数组元素的访问


var testGetArrValue=arrayObj[1]; //获取数组的元素值
arrayObj[1]= "这是新值"; //给数组元素赋予新的值

3、数组元素的添加


arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。

4、数组元素的删除


arrayObj.pop(); //移除最后一个元素并返回该元素值
arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

5、数组的截取和合并


arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组

6、数组的拷贝


arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向

7、数组元素的排序


arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.sort(); //对数组元素排序,返回数组地址

三、线性表

线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储,但是把最后一个数据元素的尾指针指向了首位结点)。

线性表的基本运算(假设L为一张线性表)

  1. 建立一个空表:Createlist(L)
  2. 置空表:ClearList(L)
  3. 判断表是否为空:IsEmpty(L)
    • 若为空返回True(1),否则返回False(0)
  4. 求表长:Length(L)
  5. 取表中的某个元素:GetList(L,i),即L[i],要求 0<=i<legth(L)-1
  6. 定位运算:Locate(L,x) 确定元素x在表L的位置
    • 如果存在返回位置信息,如果不存在返回-1
  7. 插入:Insert(L,x,i),将元素x插入到L表的第i个元素之前,且表长+1
  8. 添加:Add(L,x),将元素x加入到L表中,且长+1
  9. 删除:Delete(L,i),删除表L的第i个元素,且表长-1,要求 0<=i<legth(L)-1
  10. 复合元素
    • 合并:Merge(L1,L2),将表L1和表L2合并为一张表,去重
    • 去重:Deduplication(L),将表L的元素去重

线性表的顺序存储:

线性表的顺序存储是指在内存中用一块地址连续的存储空间顺序存放线性表的各数据元素,使得线性表中在逻辑结构上相邻的数据元素存储在连续的物理存储单元中,即通过数据元素物理存储的连续性来反映数据元素之间逻辑上的相邻关系。

typedef int ElementType;
typedef struct
{
	ElementType *array;   // 存放元素的数组
	int length;  // 当前长度
	int capacity;  // 数组容量
}SqList;

线性表的链式存储:

链式存储是指指在线性表中逻辑上相邻的数据元素在物理位置上并不一定相邻,它是通过‘链’建立起数据元素之间的逻辑关系。

typedef int ElementType;
typedef struct Node
{
	ElementType data;    // 数据域
	struct Node *next;   // 指针域
}node;
typedef struct Node *LinkList;

延伸阅读

数组的特征

  • 数组用唯一的名字标识,通过数组名可以数组中的元素进行引用。
  • 数组中的元素类型必须相同。
  • 数组的内存单元是连续的。
  • 数组中的数据元素都是顺序存放的。有先后关系,且元素之间没有空隙

文章标题:数组属于线性表吗,为什么,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/49397

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLWZ, ZLW认证作者
上一篇 2023年4月15日 下午6:53
下一篇 2023年4月15日

相关推荐

  • vscode为什么会丢失代码

    Visual Studio Code(VSCode)偶尔会发生代码丢失的情况,这可能是由于多种因素导致,包括但不限于版本控制问题、插件冲突、不当的保存操作、系统崩溃以及同步错误。在这些原因中,版本控制问题尤为常见,因为它涉及到软件在处理文件版本时可能出现的错误或混乱,尤其是在多人共同工作于同一项目时…

    2024年4月3日
    10400
  • 在sql中用于删除记录的命令是什么

    在sql中用于删除记录的命令是DELETE 语句,DELETE语句用于删除表中现有记录。delete语句的语法形式一般是:DELETE FROM table_name WHERE some_column=some_value,即DELETE FROM 表名称 WHERE 列名称 = 值。 一、DEL…

    2023年1月9日
    3.0K00
  • 如何加快建设项目进度管理

    要加快建设项目进度管理,关键是管控项目范围、高效资源分配、精细化进度计划、加强沟通协调、及时风险管理、采用现代技术手段。其中,精细化进度计划起到决定性作用,它要求项目管理人员深入分析项目各环节、作业内容和时间安排,确保每一个阶段都有明确的目标和时间节点,从而对整体项目进度有清晰的把控。 一、管控项目…

    2024年4月10日
    5000
  • 科研项目形成的资产怎么管理

    开门见山地回答:科研项目形成的资产管理须遵循科学、合规、高效、保值增值的原则。涉及的关键流程包括1、资产的确定与归类、2、资产的使用与维护、3、资产的评估与转化、4、风险管理与知识产权保护。3、资产的评估与转化 环节尤其重要,因为它关联到科研成果能否有效转换为经济利益,进而推动科技与产业的进步。这涉…

    2024年1月9日
    22600
  • 物业智能化管理系统有哪些

    物业智能化管理系统是现代化物业管理的重要组成部分,它通过集成各种智能技术来实现更高效、便捷和智能的物业管理。主要的物业智能化管理系统包括1、访客管理系统;2、智能停车系统;3、能源管理系统;4、智能安全监控系统;5、楼宇自动化管理系统等。在正文中,我们将深入探讨每一个系统的核心功能和使用场景。 1、…

    2023年8月8日
    79900
  • 项目部公章如何管理图片

    防止滥用、确保安全、遵循法律规定,是项目部公章管理的核心原则。要想合理有效地管理项目部公章,必须建立一套周密的制度,包括专人保管、使用登记、上级审批等环节,来确保每一次盖章活动都是出于正当、必要的工作需求。明确责任人的职责尤为关键,确定由专人负责公章的保管及使用记录的审核,可以极大地减少公章被滥用的…

    2024年4月10日
    5400
  • 数据库Oracle,SqlServer和DB2各有什么优缺点

    Oracle的优点是:标准化、高可用性、高安全性和灵活性;缺点是:高昂的成本、复杂性和高资源消耗。SqlServer的优点是:易于使用、价格和可伸缩性;缺点是:安全性、性能和限制。DB2的优点是:高性能、可伸缩性和安全性;缺点是:成本、复杂性和兼容性。 Oracle Oracle数据库是一种关系型数…

    2023年6月11日
    69900
  • 可以记录工作工时工资的软件是什么

    记录工作工时工资的软件的软件有:一、RescueTime;二、Toggl;三、Clockify;四、Everhour。RescueTime 是一款自动记录电脑工作路径的软件,能自动记录电脑用户使用了哪些软件及时长,并从日、周、月等不同时间范围自动分析用户的高效工作、普通工作、聊天活动等时长。 一、R…

    2023年4月16日
    47100
  • 如何提高项目经理心态管理

    提高项目经理的心态管理能力至关重要,关键在于理解自我、情绪调节、压力管理、正向思考和沟通技巧。这五个方面相辅相成,构成了高效心态管理的基石。其中,情绪调节尤为关键,因为它直接影响到项目经理的决策能力、团队管理能力以及与客户的沟通效率。情绪调节能力强的项目经理能够更好地应对项目中出现的各种挑战和压力,…

    2024年4月10日
    4200
  • 数据和信息之间有什么联系和区别

    数据和信息之间的联系:数据是反映客观事物属性的记录,是信息的具体表现形式。数据经过加工处理之后,就成为信息;而信息需要经过数字化转变成数据才能存储和传输。数据和信息之间的区别:1、概念不同;2、特点不同;3、分类不同。数据是信息的表现形式和载体,信息是数据的内涵。 一、联系 数据和信息之间是相互联系…

    2023年7月22日
    1.7K00

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部