5.数据结构 --- 数组和广义表
1.数组的定义和线性表一样,所有的数据元素都必须属于同一数据类型。当n=1,n维数组就退化为定长的线性表。数组一旦被定义,它的维度和维届就不再改变。2.矩阵的压缩存储矩阵中有许多值相同的元素或者是零元素。有时为了节省存储空间,对这类矩阵进行压缩存储。所谓的压缩存储是指:为多个值相同的元只分配一个存储空间;对零元不分配存储空间。假设值相同的元素或者是零元素在矩阵中的分布有一定的规律,则我们称此类矩阵为特殊矩阵;反之称为稀疏矩阵。1.特殊矩阵若n阶矩阵A中的元满足下述性质:Aij = Aji 1<=i,j<=n则称为n阶对称矩阵。对于对称矩阵,我们可以为每一个对称元分配一个存储空间,则可以将n^2个元压缩到n(n+1)/2个元的空间中。假设以一维数组sa[n(n+1)/2]作为n阶对称矩阵A的存储结构,则sa[k]和矩阵元素aij之间存在一一对应的关系:k = i(i-1)/2 + j - 1 // 当i>=j或k = j(j-1)/2 +i - 1 //当i<j对于任意给定一组下标(i,j),均可在sa中找到矩阵元aij,反之,对所有的k=0,1,2,3...,n(n+1)/2-1,都能确定sa[k]中的元在矩阵中的位置(i,j),由此,称sa[n(n+1)/2] 为n对称矩阵A的压缩存储。所谓的下(上)三角矩阵是指矩阵的上(下)三角(不包括对角线)中的元均为常数c或者零的n阶矩阵。则除了和对称矩阵一样,只存储其下(上)三角中的元之外,再加上一个存储常数c的存储空间即可。对角矩阵:在这种矩阵中,所有的非零元都几种在以对角线为中心的带状区域中。即除了主对角线上和直接在对角线上,下方若干条对角线上的元之外,其他所有的元皆为零。在所有这些我们称之为特殊矩阵的矩阵中,非零元的分布都有一个明显的规律,从而使得我们可以将其压缩到一维数组中,并找到每个非零元在一维数组中的对应关系。然而,在实际应用中我们还经常遇到另一类矩阵,其非零元较零元少,且分布没有一定的规律,我们称之为稀疏矩阵。2.稀疏矩阵假设在 m*n 的矩阵中,有t个元素不为零。另 x = t/(m*n),称x为矩阵的稀疏因子,通常认为 x<=0.05 时称为稀疏矩阵。如何进行稀疏矩阵的压缩存储呢?按照压缩存储的概念,只存储稀疏矩阵的非零元。因此,除了存储非零元的值之外,还必须同时记下它所在的行和列的位置(i,j)。反之,在一个三元组(i,j,aij)唯一确定了矩阵A的一个非零元。由此,稀疏矩阵可由表示非零元的三元组及其行列数唯一确定。1.三元组顺序表假设以顺序存储结构来表示三元组表,则可得稀疏矩阵的一种压缩存储方式---我们称之为三元组顺序表。三元组顺序表又称为有序的双下标法,它的特点是,非零元在表中按行序有序存储,因此便于进行一次顺序处理的矩阵运算。2.行逻辑链接的顺序表为了便于随机存取任意一行的非零元,则需知道每一行的第一个非零元在三元组表中的位置。为此,可将上节快速转置矩阵中的算中创建的,指示'行'信息的辅助数组cpot固定在稀疏矩阵的存储结构中。称这种'带行链接信息'的三元组表为行逻辑链接的顺序表。3.十字链表3.广义表的定义广义表是线性表的推广。广义表一般记作: LS = (a1,a2,...,an)其中,LS 是广义表的名称,n是它的长度。在线性表的定义中,ai只限于是单个元素。而在广义表中,ai可以是单个元素,也可以是广义表,分别称为广义表LS的原子和子表。4.m元多项式的表示一元多项式用线性表表示,m元多项式用广义表表示。5.广义表的递归算法递归定义的基本项描述了一个或几个递归的过程的终结状态。递归的过程,必定能够经过有限层次的递归而终止。所谓的终结状态指的是不需要继续递归而可直接求解的状态。递归定义的归纳项描述了如何实现从当前状态到终结状态的转换。递归设计的实质是:当一个复杂的问题可以分解为若干子问题来处理时,其中某些子问题与原问题有相同的特征属性,则可利用和原问题相同的分析处理方法;反之,这些子问题解决了,原问题也迎刃而解了。递归的归纳项就是描述这种原问题和子问题之间的转换关系。
5.数据结构 --- 数组和广义表相关推荐
- 数据结构数组计算机中的应用,2018考研计算机:数据结构数组和广义表复习重点...
2018考研计算机:数据结构数组和广义表复习重点 2017-08-17 16:00 | 考研集训营 <数据结构(C语言版)>复习重点在二.三.六.七.九.十章,考试内容两大类:概念,算法, ...
- 数据结构----数组与广义表专题
数组与广义表专题 数组的顺序表示和实现 前言 数组中任意一个元素存储地址的计算 一维数组 二维数组 更一般的二维数组 矩阵的压缩存储 前言 对称矩阵 三角矩阵 前言 上三角对应关系 下三角关系 三对角 ...
- 数据结构--数组和广义表
数组 数组的定义: 数组:按一定格式排列起来,具有相同类型的数据元素的集合 一维数组:若线性表总的数据元素为非结构的简单元素,则称为一维数组 一维数组的逻辑结构:线性结构.定长的线性表 int num ...
- 第五章:1.数组和广义表 -- 数组
前言: 2.3.4章讨论的线性结构中的数据元素都是非结构的原子类型,元素的值是不再分解的.本章讨论的两种数据结构---数组和广义表可以看成是线性表在下述含以上的扩展:表中的数据元素本身也是一个数据结构 ...
- Java数据结构和算法:字符串、数组和广义表
数组和广义表是与前述的线性表有所区别的数据结构.它们可以看成是线性表在下述含义上的扩展:线性表中的元素本身也是一个数据结构 字符串 字符串的定义.存储结构 字符串(string)是由n (n≥0) 个 ...
- 【数据结构总结】第四章:串、数组和广义表(线性结构)
第四章:串.数组和广义表(线性结构) 提示:本文主要是以思维导图的形式概括数据结构第一章的精华内容,基本不会用到文字性的内容,目的是为了给大家梳理每个重要的知识点的相关概念,方便大家在复盘的时候快速阅 ...
- 数据结构05数组和广义表
第五章 数组 和 广义表 数组和广义表可以看成是线性表在下述含义上的扩展:表中的数据元素本身也是一个数据结构. 5.1 数组的定义 n维数组中每个元素都受着n个关系的约束,每个元素都有一个直接后继元素 ...
- 数组和广义表 - [数据结构]
2005-09-07 数组和广义表 - [数据结构] 第五章 数组和广义表 --非线性数据结构 5.1 数组的定义和运算 ☆二维数组的逻辑结构形式定义为: 2_Array=( D, R ) 其中 D= ...
- 《数据结构》-第四章 串、数组和广义表(习题)
第四章 串.数组和广义表练习题 本章考点较少易于掌握,对于串的重点考点为串的模式匹配算法:数组的主要考点为数组下标与存储地址计算和特殊矩阵的压缩存储方法:针对广义表的考点主要为在广义表中取原子项(表) ...
- 数据结构:串、数组和广义表
串 线性结构:线性表.栈和队列.串与数组和广义表 串的逻辑结构和线性表极为相似,区别仅在于串的数据对象限定为字符集.在基本操作上,串和线性表有很大差别.线性表的基本操作主要以单个元素作为操作对象,如查 ...
最新文章
- 【Joomla】K2 Item 页面添加 Module
- VBS遍历Excel工作表的方法
- python中关于sqlite3数据库插入数据的使用
- shell中的for循环语句
- 电脑罗盘时钟代码_苹果电脑怎么设置数字时钟屏保 Word Clock for Mac安装教程
- ip 地址 192.168.1.255 代表( )。_判定IP地址合法性的三种方法
- reactor模式:多线程的reactor模式
- MySQL Server Architecture
- bootstrap-switch 不起作用 class处显示代码_注解KafkaListener不起作用,到底发生了啥?...
- Oracle Create Profile
- mpacc和计算机硕士,考MPAcc还是工作?读研三年VS工作三年对比!
- iphone开发常用编码
- (转)2020年网络安全产业图谱
- python高斯滤波和降噪_高斯滤波详解 附python和matlab高斯滤波代码
- Android 系统(93)---android 怎么判断手机号是移动还是联通还是电信
- 05决策树与随机森林(学习笔记)
- C语言头昏,眩晕、头晕、头昏混为一谈?这可不是一种病症
- va_list 使用总结
- 2020阿里云云栖大会奖品活动汇总(持续更新,快收藏)
- Redis 的info命令信息解释
热门文章
- BZOJ:1816 [Cqoi2010]扑克牌 (贪心或二分答案)
- pandas中dataframe的索引问题
- 076 Apache的HBase与cdh的sqoop集成(不建议不同版本之间的集成)
- 数据结构之队列java版
- Light oj 1233 - Coin Change (III) (背包优化)
- CommandBehavior.CloseConnection使用
- URL编码分析与乱码解决方案
- uCOS-II 学习笔记之任务管理--------任务控制块OS_TCB
- Qt配置使用VS2010进行开发
- echarter: ECharts的R语言接口(一)