zl程序教程

您现在的位置是:首页 >  工具

当前栏目

数据结构课上笔记9

2023-09-27 14:25:55 时间

数组:按一定格式排列起来的具有相同类型的数据元素的集合。

 

二维数组:若一维数组中的数据元素又是一维数组结构,则称为二维数组。 

同理,推广到多维数组。若 n -1 维数组中的元素又是一个一维数组结构,则称作 n 维数组。 

声明格式:数据类型   变量名称[行数] [列数] ;

 

实现:一般都是采用顺序存储结构来表示数组。

 

二维数组两种顺序存储方式:以行序为主序 (低下标优先) 、以列序为主序 (高下标优先)

一个二维数组 A,行下标的范围是 1 到 6,列下标的范围是 0 到 7,每个数组元素用相邻的6 个字节存储,存储器按字节编址。那么,这个数组的体积是288个字节。

 

 广义表(又称列表 Lists)是n≥0个元素 a1, a2, …, an 的有限序列,其中每一个ai 或者是原子,或者是一个子表。

 

表头:若 LS 非空 (n≥1 ),则其第一个元素 a1 就是表头。

 表尾:除表头之外的其它元素组成的表。记作  tail(LS) = (a2, ..., an)。 

 

(( )) 长度为 1,表头、表尾均为 ( )

(a, (b, c))长度为 2,由原子 a 和子表 (b, c) 构成。表头为 a ;表尾为 ((b, c))。

 

广义表的长度定义为最外层所包含元素的个数

广义表的深度定义为该广义表展开后所含括号的重数。

“原子”的深度为 0 ;  “空表”的深度为 1 。

 

取表头运算 GetHead  和取表尾运算 GetTail

GetHead(LS) = a1        GetTail(LS) = (a2, …, an)。

 

广义表可看成是线性表的推广,线性表是广义表的特例。

 

广义表的结构相当灵活,在某种前提下,它可以兼容线 性表、数组、树和有向图等各种常用的数据结构。

由于广义表不仅集中了线性表、数组、树和有向图等常 见数据结构的特点,而且可有效地利用存储空间,因此在计算机的许多应用领域都有成功使用广义表的实例。