数据结构知识点大汇总(四)
四、数组和广义表
数组的定义
- 数组是我们熟悉的数据类型,数组中各元素具有统一的类型,并且数组元素的下标一般具有固定的上界和下界,因此,数组的处理比其它复杂的结构更为简单。
- 任何数组A都可以看作一个线性表。数组维数确定后,数据元素个数和元素之间的关系不再发生改变,适合顺序存储。
- 数组的基本操作
数组的顺序表示和实现
- 行优先顺序
- 列优先顺序
矩阵的压缩存储
- 有些特殊矩阵,非零元素呈某种规律分布或者矩阵中出现大量的零元素的情况下,会占用许多单元去存储重复的非零元素或零元素,这对高阶矩阵会造成极大的浪费,为了节省存储空间,对这类矩阵进行压缩存储——即为多个相同的非零元素只分配一个存储空间;对零元素不分配空间。
- 特殊矩阵:所谓特殊矩阵是指非零元素或零元素的分布有一定规律的矩阵,如对称矩阵、三角矩阵、对角矩阵等等。
对称矩阵
- 对称矩阵中元素关于主对角线对称,故只要存储矩阵中上三角或下三角中的元素,让每两个对称的元素共享一个存储空间,这样能节约近一半的存储空间。
- n2 个元素可以压缩到 n(n+1)/2个空间中。
三角矩阵
- 以主对角线划分,三角矩阵有上三角和下三角两种。上三角矩阵它的下三角中的元素均为常数。下三角矩阵正好相反,它的主对角线上方均为常数。
稀疏矩阵
除了记录非零元素的值之外,还必须同时几下它所在的行和列的位置。稀疏矩阵的存储方法一般有三种:三元组法、行逻辑连接顺序表和十字链表法。
广义表
- 是由零个或多个原子或子表组成的优先序列,是线性表的推广。
广义表的存储结构
- 广义表中的数据元素可以具有不同的结构,因此,难以用顺序存储结构表示,通常采用链式存储结构,每个数据元素可用一个节点表示。由于广义表中有两种数据元素,因此需要有两种结构的节点——一种是表结点,一种是原子结点。
- 表结点由三个域组成:标志域、指示表头的指针的指针域和指示表尾的指针域;而原子域只需两个域:标志域和值域。
- 表结点由三个域组成:标志域、指示表头的指针域和指向下一个元素的指针;原子结点的三个域为:标志域、值域和指向下一个元素的指针。
有帮助到你的点赞、收藏和关注一下吧
需要更多教程,微信扫码即可
数据结构知识点大汇总(四)相关推荐
- 数据结构知识点大汇总(七)
七.查找 概述 查找表:由同一类型的数据元素(或记录)构成的集合. 静态查找表 静态查找是指在静态查找表上进行的查找操作,在查找表中满足条件的数据元素的存储位置或各种属性.静态查找表的查找算法主要有: ...
- 数据结构知识点大汇总(六)
六.图 图的概念 图是一种较线性表和树更为复杂的数据结构,在图形结构中,结点之间关系可以是任意的,图中任意两个数据元素之间都可能相关. 有向图和无向图 若无向图中的每两个顶点之间都存在着一条边,则称该 ...
- 数据结构知识点大汇总(八)
八.排序 排序概述 排序的分类:内部排序和外部排序(若待排序记录都在内存中,称为内部排序:若待排序记录一部分在内存,一部分在外存,则称为外部排序).稳定排序和不稳定排序. 内部排序的算法:插入排序(希 ...
- 数据结构知识点大汇总(一)
一.数据结构绪论 数据结构的基本概念 数据结构是一门研究非数值计算的程序设计问题中,计算机的操作对象以及它们之间的关系和操作的学科. 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和 ...
- 数据结构知识点大汇总(二)
二.线性表 线性表的类型定义 线性表是n(n>0)个相同类型数据元素构成的有限序列,其中n为线性表的长度. 线性表的基本操作: 线性表的顺序表示和实现 线性表的顺序存储结构:用一组地址连续的存储 ...
- 数据结构知识点大汇总(三)
三.栈和队列 栈的概念 栈是限制在表的一端进行插入和删除运算的线性表,通常称插入.删除的这一端为栈顶,另一端为栈底.当表中没有元素时成为空栈. 栈的进出顺序判断: 栈的基本操作: 顺序栈 顺序栈利用一 ...
- 数据结构知识点大汇总(五)
五.树 树的定义 树的逻辑表示:树形表示法.文氏图表示法.凹入表示法.括号表示法. 结点:表示树中的元素,包括数据项及若干指向其子树的分支. 结点的度:结点拥有的子树树:树的度:一棵树中最大的结点度数 ...
- 面试必会系列 - 3.1 Redis知识点大汇总(数据类型,内存模型,持久化,缓存击穿,集群,一致性哈希等等)
本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...
- 面试必会系列 - 2.1 MySQL知识点大汇总(基本架构,存储引擎,锁,事务,索引,B+树等等)
本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...
最新文章
- 2021年春季学期-信号与系统-第八次作业参考答案-第五小题
- STM32中3个延时函数
- clojure学习记录
- [tensorflow] - csv文件读取
- 牛客练习赛69E-子串【树状数组】
- linux var 空间不足,/var空间不足怎么办?(求安全保险的方法)
- Springboot与Spring的关系
- Linux系统NFS故障现象
- 矩池云如何使用 conda create 创建纯净的 Python3.6 环境?
- linux中用shell获取时间,日期
- 距离度量以及python实现(一)
- 确定填充介质的矩形波导单模传输TE10波的工作频率
- 一本用户体验时代的产品生存指南
- Android开发新手学习总结(一)——使用Android Studio搭建Android集成开发环境
- sprint冲刺(第二天)
- 备战数学建模14-熵权法确定指标权重系数
- 一款好用的绘制组织结构图的软件-亿图组织结构图
- JAVA各种系统架构图及其简介,分布式中间件技术实战
- 等保三级多久测评一次?每年都要测评吗?
- 陈菁北大计算机,北大生科2018年度億方学者名单揭晓 三名年轻科学家获奖
热门文章
- 缺钱还是车库放不下?王思聪两台顶级座驾上架二手市场,要价比新车还贵!...
- 华为推出地图服务 助力开发者强化地图能力
- 口碑饿了么融合一周年 城市生活服务为何变得更"立体"了
- 2019款新iPhone发布时间曝光:依旧9月12日亮相?
- 论降价就服拼多多!618大促 iPhone最高降幅2811元
- 5G对人体危害很大?张朝阳回应:并未做过深入研究
- HTML meta 标签 遇到meta http-equiv=refresh content=0; url=详解
- 大数据分析机器学习(一)之线性模型-年龄和心率关系
- 设置编译out_matlab2017a与 CCS 6.2联调设置
- 我的docker随笔20:多平台docker镜像下载