美文网首页
数组和广义表

数组和广义表

作者: Re丶Allen | 来源:发表于2018-03-30 16:39 被阅读0次

数组,所有的程序设计语言学习之初都有它的身影。根据数组中存储的数据元素之间的逻辑关系,可以将数组分为 : 一维数组、二维数组、…、n维数组。

  • n维数组中,维数 n 的判断依据是:根据数组中为确定元素所在位置使用的最少的下标个数。

数组 线性表

数组和顺序表的本质不同。数组作为一种数据类型,作用是将类型相同的数据存储在一整块内存中,数组中存储的数据之间没有任何逻辑关系,谁也不认识谁。

顺序表作为线性表的存储结构,存储的这些数据元素在物理存储结构上相邻的同时,在逻辑结构上也相邻,每个数据元素都清楚地知道紧挨着它的前边的元素和后边的元素。

如果用一句话来描述两者之间的关系,就是:用数组来存储的线性表是顺序表。

在数组中调取数据元素

在n维数组中调取数据元素,需要知道以下因素:
数组存放的起始位置(也就是数组中第一个元素的存储位置)。
被调取元素在 n 维数组中的具体位置(例如,二维数组需要知道被调取元素 aij 在数组中的行标 i 和列标 j )。
数组中单个数据元素占用的内存空间,一般用 L 表示(数组中存放的数据的类型都一样)。

如果在以行序存储的二维数组 anm 中查找某个数据元素 aij 的存储位置,方法是:

  • LOC(i,j) = LOC (0,0) + (im+j)L;

矩阵压缩存储(十字链表、三元组顺序表、行逻辑衔接的顺序表)

需要进行压缩的矩阵主要分为两大类:

  • 矩阵中含有大量的相同数值,称为特殊矩阵(例如对称矩阵和上下三角矩阵)。
  • 矩阵中只有极少量的元素是非 0 元素,称为稀疏矩阵。

相关文章

  • 数组和广义表

    数组,所有的程序设计语言学习之初都有它的身影。根据数组中存储的数据元素之间的逻辑关系,可以将数组分为 : 一维数组...

  • 数组和广义表

    数组的定义和运算 C语言支持一维数组和多维数组。如果一个数组的所有元素都不是数组,那么该数组称为一维数组。 在ja...

  • 数组和广义表

    数组和广义表 数组和广义表可看成是一种特殊的线性表,其特殊在于: 表中的元素本身也是一种线性表。内存连续。根据下标...

  • #数据结构#—广义表

    广义表 广义表,又称列表,也是一种线性存储结构。同数组类似,广义表中既可以存储不可再分的元素,也可以存储广义表,记...

  • 软件设计师考试 | 第三章 数据结构 | 数组、矩阵和广义表

    数组与广义表可看作是线性表的推广,其特点是数据元素仍然是一个表。 (一)数组 1.数组的定义及基本运算 (1)数组...

  • hashMap 底层傻瓜式理解

    hashMap java中用的比较多的底层结构有数组(也就是广义表结构)和链表。作为容器,他们各有优缺点。数组随机...

  • 数据结构(七)数组和广义表

    数组 从本质上讲,数组与顺序表、链表、栈和队列一样,都用来存储具有 "一对一" 逻辑关系数据的线性存储结构。只因各...

  • 广义表

    广义表广义表的定义广义表的存储结构广义表的M元多项式广义表的递归算法 一、广义表的定义:广义表(Lists,又称列...

  • 广义表

    是由零个或多个原子或子表组成的优先序列,是线性表的推广。 广义表的存储结构 广义表中的数据元素可以具有不同的结构,...

  • 广义表

    1. 广义表:元素为原子项或广义表 A = () —— 空表,长度为0B = (e) —— 表B只有一个原子e,...

网友评论

      本文标题:数组和广义表

      本文链接:https://www.haomeiwen.com/subject/lvuicftx.html