前面学习数据结构的过程中,总是使用数组作为顺序表的底层实现,给我们一种 "数据结构中,数组的作用就是实现顺序表" 的错误认识。其实,数组的作用远不止于此。

本节将从数据结构的角度讲解数组存储结构。

本节所讲的数组,要将其视为一种存储结构,与平时使用的数组基本数据类型区分开。

什么是数组

一说起数组,我们的印象中数组往往是某一门编程语言中包含的具体数据类型,其实不然。

从本质上讲,数组与顺序表、链表队列一样,都用来存储具有 "一对一" 逻辑关系数据的线性存储结构。只因各编程语言都默认将数组作为基本数据类型,使初学者对数组有了 "只是基本数据类型,不是存储结构" 的误解。

不仅如此,数组和其他线性存储结构不同,顺序表、链表、栈和队列存储的都是不可再分的数据元素(如数字 5、字符 'a' 等),而数组既可以用来存储不可再分的数据元素,也可以用来存储像顺序表、链表这样的数据结构。

比如说,数组可以直接存储多个顺序表。我们知道,顺序表的底层实现还是数组,因此等价于数组中继续存储数组。这与平时使用的二维数组类似。

什么是数组(数据结构),数组及其定义详解相关推荐

  1. 数据结构——链表(定义详解及建立单链表与实现其操作)

    链表定义:链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括 ...

  2. 数组,异质结构以及指针的详解

    数组,异质结构以及指针的详解 前言 昨天看了一部韩国电影,老千2,看到凌晨5点,不过发现韩国的棒子们确实养眼,女的贼拉漂亮,还有大尺度哦~ 咱们上一次分析了过程(方法)的实现,其中精妙的栈帧占据了首要 ...

  3. python数组相减_对Python 中矩阵或者数组相减的法则详解

    对Python 中矩阵或者数组相减的法则详解 最近在做编程练习,发现有些结果的值与答案相差较大,通过分析比较得出结论,大概过程如下: 定义了一个计算损失的函数: def error(yhat,labe ...

  4. ❤️导图整理数组6:四数组的四数之和,详解Counter类实现哈希表计数,力扣454❤️

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...

  5. 数组和链表的区别详解

    目录 1.什么是数组和链表 2.数组和链表的区别 1.什么是数组和链表 数组介绍 数组:相同数据类型的元素按照一定的顺序排列的集合 数组本身属于引用数据类型,数组是由下标索引和data两部分组成. 数 ...

  6. python画二维散点图-基于python 二维数组及画图的实例详解

    1.二维数组取值 注:不管是二维数组,还是一维数组,数组里的数据类型要一模一样,即若是数值型,全为数值型 #二维数组 import numpy as np list1=[[1.73,1.68,1.71 ...

  7. php 打印对象详细信息,php打印显示数组与对象的函数详解

    php打印显示数组与对象的函数详解 发布于 2014-11-17 18:55:49 | 699 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext P ...

  8. 【Python】Numpy数组的切片、索引详解:取数组的特定行列

    [Python]Numpy数组的切片.索引详解:取数组的特定行列 文章目录 [Python]Numpy数组的切片.索引详解:取数组的特定行列 1. 介绍 2. 切片索引 2.1 切片索引先验知识 2. ...

  9. shell编程数组与冒泡算法排序详解

    shell编程数组与冒泡算法排序详解 一 数组的四种表达方式 二 数组的增删改查操作 三 数组传参 3.1 主程序向函数传数组参数 3.2 从函数返回数组到主程序 四 冒泡算法排序 一 数组的四种表达 ...

  10. matlab合并有序数组,《数组合并》JS合并两个数组的3种方法详解

    这篇文章主要介绍了JS合并两个数组的3种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一个包解决你所有的JS问题,点击获取 需要将两个数组 ...

最新文章

  1. ajaxFileUpload文件上传
  2. 第五周项目一-三角形类雏形(3)
  3. IDEA创建Servlet项目
  4. Emacs 快速指南
  5. Java8系列之重新认识HashMap
  6. CentOS下Samba文件服务器的安装与配置
  7. 无心剑中译迪米特利·马丁《我是谁》
  8. 最短路径VS最小生成树
  9. 新建mavan项目转为web项目
  10. VC中Radio控件的用法
  11. 知乎周刊之程序人生概要
  12. 自然语言处理(NLP):08-05 TextCNN短文本分类案例分享
  13. CUDA矩阵转置(共享内存 tile)
  14. 疯了! Python 成功预测前三场比赛,快看今天的?(附代码及比赛时间表)
  15. GitHub 标星 120K+!这些神器仅需一行代码即可下载全网视频!
  16. Android数字证书
  17. 深入理解Android系统多用户
  18. War3地图编辑器基础:自动刷兵
  19. 初识frameset
  20. u-boot-2012.04.01移植到TQ2440(七):添加分区信息并启动jffs2文件系统

热门文章

  1. vue e2e 测试
  2. 毕业设计 网络安全毕设选题推荐
  3. 数学不好是原罪——矩阵分析学习笔记The Matrix(汇总)
  4. prctl()函数给线程命名
  5. iOS16史诗更新,这6个功能,抢先体验
  6. thinkpad选择启动项_thinkpad启动项设置
  7. 电子科技大学计算机导师李珂,电子科技大学计算机科学与工程学院导师介绍:宋超...
  8. 【实验3 循环结构】7-3 sdut-C语言实验-小树快长高
  9. 什么是软件测试、生命周期、软件开发模型、测试模型
  10. SQL Server中的LAG函数与LEAD函数介绍