数组和顺序表的区别

article/2025/8/22 3:35:32

前言

看到很多人直接将顺序表等同于数组,认为顺序表就是数组,但这样做容易造成概念混淆。

下面就对这两个概念进行解释,帮助大家进行区分。

请添加图片描述

什么是顺序表

在解释什么是顺序表之前,我们还需要了解一点基础知识。

数据结构

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。

线性表

线性表(linear list)是数据结构的一种,一个线性表是 n 个具有相同特性的数据元素的有限序列

线性表在逻辑上是线性结构,也就说是连续的一条直线,但是在物理结构上并不一定是连续的。

常见的线性表:顺序表、链表、栈、队列、字符串

顺序表

顺序表,全名顺序存储结构,是线性表的一种。

顺序表不仅要求数据在逻辑上是连续的一条直线,还要求用一段物理地址连续的存储单元以次存储表中数据元素,一般情况下采用数组存储。

什么是数组

数组是相同数据类型的元素按一定顺序排列的的集合。数组中的元素存储在一个连续性的内存块中,并通过索引来访问。

简单的说,数组是在物理空间中连续存储的相同数据类型的元素的集合

可见,数组是一种顺序表,但不能说顺序表是数组。就像小学生是学生,那所有的学生都是小学生吗?

总结

  • 维基百科:顺序表是在计算机内存中以数组的形式保存的线性表

    • 此处将「数组」理解为物理结构,「顺序表」理解为逻辑结构比较合理
  • 我们可以用数组实现顺序表,但我们同样可以用数组实现二叉树、队列等结构,因此不能直接认为顺序表就是数组

  • 在顺序表中我们可以定义表中元素个数、表空间大小等变量,在数组中是没有的

逻辑结构:对操作对象的数学描述,描述的是数据元素之间的逻辑关系。

例如,线性结构,树形结构,图形结构。它们都属于逻辑结构。

物理结构:又称存储结构,数据的逻辑结构在计算机内存中的存储方式称为数据的物理结构(又称映射)。

实际上,同一种逻辑结构可以有多种存储结构,在不同的存储结构中,实现同一种运算的算法可能不同。

请添加图片描述
此用引用链接:逻辑结构与物理结构


http://chatgpt.dhexx.cn/article/B9vyiSrJ.shtml

相关文章

数据结构之顺序表:顺序表的结构及基本操作

目录 一、数据结构1.1 算法与数据结构的区别 二、顺序表2.1 顺序表的基本形式【重点】2.2 顺序表的两种基本实现方式【重点】1、一体式结构:2、分离式结构: 2.3 元素存储区替换与扩充1. 元素存储区的替换2. 元素存储区的扩充 2.4 顺序表的操作1. 增加元素2. 删除元素…

简洁顺序表

目录 前言 一、初始准备 二、尾插尾删 三、头插尾删 四、随机位置插入删除 五、顺序表缺陷 六、全部代码 前言 顺序表和链表都是线性表 顺序表的本质就是数组,能够连续存储数据 一、初始准备 建立结构体 静态版本 由于静态版本容量是固定的&#xff0c…

~~顺序表~~

1.线性结构的特点是: 在数据元素的非空有限集中: (1).存在唯一的一个被称为“第一个”的数据元素 (2).存在唯一的一个被称为“最后一个”的数据元素 (3).除第一个之外,集合中的每个数据元素都只有一个前驱 (4).除第一个之外,…

顺序表的定义

1.顺序表的定义 顺序表——用顺序存储的方式实现线性表顺序存储 eg: A1-A2-A3-A4-A5 如果第一个位置是location(L),那么第二个就是location(L)数据元素大小 [sizeof(ElemType)可以查看数据元素大小] 2.顺序表的实现——静态分配 #define MaxSize 10 //定义最大长…

C语言实现顺序表

c语言实现顺序表 线性表是最简单的数据结构,而顺序表又是最简单的线性表,其基本思想是用一段地址连续的储存单元依次存储线性表的数据元素,比如我们常用的一维数组,下面代码实现了顺序表的定义以及基本操作。 编译环境&#xff…

顺序表的实现

目录 1.顺序表的概念 2.静态顺序表 分析: 3.动态顺序表 分析: 4.顺序表初始化 5.顺序表尾部操作 5.1尾插 空间检查函数实现 分析: 5.2尾删 分析: 6.顺序表的头部操作 6.1头插 分析: 6.2头删 分析&…

【C语言】顺序表的创建

一、代码实现部分: 1、顺序表是线性表的基础部分,至于顺序表,在本人看来无异于数组。至于线性表的概念,在此不再赘述。接下来尝试利用C语言对线性表中的顺序表进行代码实现(此程序中规定用户输入的数据类型为int类型&a…

顺序表和链表

1.今天给大家介绍线性表中两个常见的结构顺序表和链表,其中链表又包括单链表和带头双向循环链表。 2.此部分的全部代码放在个人gitee中 ,需要的自行拿取,前后文件依次对应SeqList SList DList。gitee链接点这里 一、线性表 1.线性表 线性表&…

顺序表的增删查改

数据结构 是数据存储的方式,对于不同的数据我们要采用不同的数据结构。就像交通运输,选用什么交通工具取决于你要运输的是人还是货物,以及它们的数量。 顺序存储结构 包括顺序表、链表、栈和队列等。 例如腾讯QQ中的好友列表,…

顺序表初始化

文章目录 1. 顺序表2. 顺序表的初始化 1. 顺序表 顺序表(顺序存储结构) 存储数据时,会提前申请一整块足够大小的物理空间,然后将数据依次存储到一整块连续的存储空间内,存储时做到数据元素之间不留一丝缝隙。 使用顺序表存储集合 {1,2,3,4,…

顺序表的创建

三个朋友今天全部上岸大厂,祝贺。(太羡慕了) 静态分配创建一个顺序表; 1.顺序表的定义: #define MaxSize 10 typedef struct {ElemType data[MaxSize];int length; }SqlList;这里我们用结构体的方式定义以一个顺序表…

顺序表的详解

线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串.... 即顺序表为线性表的一种, 顺序表是一种物理地址连续的存储单元依次存储数据元素的线性结构&#…

什么是顺序表

顺序表 在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删…

数据结构——顺序表

目录 一. 什么是顺序表? 1,静态顺序表 2,动态顺序表 ①动态顺序表的实现及其初始化 ②空间的创建 ③顺序表的打印和销毁 ④顺序表的尾部插入和删除 ⑤顺序表的头部插入和删除 ⑥顺序表pos位置的插入和删除 ⑦顺序表指定元素的删除 二&am…

【数据结构】——顺序表介绍(独家介绍,小白必看!!)

重点和易错点都用彩笔标记出来了,放心食用!! 数据结构分为线性表和非线性表,今天我们要学习的顺序表就是线性表中的一个小类。那么,何为线性表,线性表是指n个具有相同性质的数据元素的有限序列&#xff0c…

顺序表详解

目录 一、线性表的概念 二、顺序表 1、顺序表的概念 1). 静态顺序表:使用定长数组存储元素。 2). 动态顺序表:使用动态开辟的数组存储。 三、接口实现 1、创建 2、初始化 3、扩容 4、尾插 5、打印 6、销毁 7、尾删 越界&…

php的strstr是什么意思,php strstr函数怎么用

strstr()函数是PHP中的一个内置函数,语法为strstr(string,search,before_search) ,用于搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。此函数区分大小写。 php strstr()函数怎么用…

【数据结构】--- kmp算法和strstr函数

kmp算法和strstr函数 引言一、概念分析分析原理分析 KMP算法原理基本操作图解KMP原理 三、复杂度分析四、KMP算法代码 引言 现实生活中,字符串匹配在很多的应用场景里都有着极其重要的作用,包括生物信息学、信息检索、拼写检查、语言翻译、数据压缩、网…

实现strstr函数

strstr函数的作用是寻找子字符串在目标字符串中第一次出现的位置。 #include <stdio.h> #include<stdlib.h> #include<assert.h> const char * Strstr(const char * str1, const char * str2) {assert(str1 ! NULL);assert(str2 ! NULL);char* cur str1;ch…

字符串函数剖析(3)---strstr函数

1.strstr函数的巧妙 – 查找子字符串 1.1模拟实现strstr函数 strstr函数&#xff1a;在一个字符串中查找子串 学习新函数时&#xff0c;先去c库查找该函数的相关资料&#xff0c;更加助于你的学习 const char * strstr ( const char * str1, const char * str2 );先看函数…