数据结构知识点总结讲课稿

合集下载

《数据结构(c语言版)》重点知识汇总.pptx

《数据结构(c语言版)》重点知识汇总.pptx

数组一般用顺序存储的方式表示。 存储的方式有: ·行优先顺序,也就是把数组逐行依次排列。PASCAL、C
·列优先顺序,就是把数组逐列依次排列。FORTRAN
·子串在主串中的序号就是指子串在主串中首次出现的位置。
地址的计算方法: ·按行优先顺序排列的数组:LOCa(ij)=LOCa(11)+((i-1)
·三角矩阵: ·上三角阵:k=i*(2n-i+1)/2+j-i,LOCa(ij)=LOC(sa[0])+k*d. ·下三角阵:k=i*(i+1)/2+j,LOCa(ij)=LOC(sa[0])+k*d.
·对角矩阵:k=2i+j,LOCa(ij)=LOC(sa[0])+k*d. 稀疏矩阵的压缩存储方式用三元组表把非零元素的值和它所在的行号列号做为一
·第三种就是用一个计数器记录队列中的元素的总数。 队列的链式存储结构称为链队列,一个链队列就是一个操作受限的单链表。为了便于在
但不适合插入、链接操作。 ·动态存储分配:是在定义串时不分配存储空间,需要使用时按所需串的长度分配存
储单元。 串的链式存储就是用单链表的方式存储串值,串的这种链式存储结构简称为链串。链
单元中的各元素的物理位置和
·优点是将数据和操作封装在一起实现了信息隐藏。 程序设计的实质是对实际问题选择一种好的数据结构,设计一个好的算法。算法取决于 数据结构。
逻辑结构中各结点相邻关系是一致的。地址计算:LOCa(i)=LOCa(1)+(i-1)*d; (首地址为 1)
在顺序表中实现的基本运算:
算法是一个良定义的计算过程,以一个或多个值输入,并以一个或多个值输出。 评价算法的好坏的因素:·算法是正确的; ·执行算法的时间;

《数据结构》说课稿

《数据结构》说课稿

《数据结构》说课稿引言概述:数据结构是计算机科学的基础,它研究数据的组织、存储和管理方式,是计算机程序设计的重要组成部分。

本文将从四个方面介绍数据结构的基本概念、常见数据结构类型、数据结构的应用以及学习数据结构的重要性。

一、基本概念1.1 数据结构的定义:数据结构是指一组数据元素及其之间的关系,是数据的逻辑结构和物理结构的抽象。

1.2 数据结构的分类:数据结构可以分为线性结构、非线性结构和文件结构三类,每类又可以细分为多种具体类型。

1.3 数据结构的基本操作:数据结构的基本操作包括插入、删除、查找和修改等,这些操作是对数据进行增删改查的基础。

二、常见数据结构类型2.1 数组:数组是一种线性结构,它由相同类型的数据元素组成,通过下标访问元素,具有随机访问的特点。

2.2 链表:链表是一种非线性结构,它由节点组成,每个节点包含数据和指向下一个节点的指针,可以实现灵活的插入和删除操作。

2.3 栈和队列:栈和队列是两种特殊的线性结构,栈具有先入后出的特点,而队列具有先入先出的特点,它们在算法中有广泛的应用。

2.4 树和图:树和图是两种常见的非线性结构,树是一种层次结构,图是由节点和边组成的网络结构,它们在数据库、网络等领域有重要的应用。

三、数据结构的应用3.1 数据库管理系统:数据库管理系统是基于数据结构的软件,它通过合理的数据结构来存储和管理大量的数据,提供高效的数据访问和操作功能。

3.2 图像处理:图像处理涉及大量的像素数据,通过合适的数据结构可以高效地存储和处理图像,实现图像的压缩、滤波、特征提取等操作。

3.3 算法设计:算法是解决问题的步骤和方法,合适的数据结构可以提高算法的效率和性能,常见的排序、查找和图算法都离不开数据结构的支持。

四、学习数据结构的重要性4.1 提高编程能力:学习数据结构可以培养抽象思维和逻辑思维能力,提高编程的效率和质量。

4.2 解决实际问题:数据结构是解决实际问题的基础,通过合适的数据结构可以更好地组织和管理数据,实现高效的数据处理和分析。

《数据结构总结》PPT课件

《数据结构总结》PPT课件

前驱
数据元素限制
前驱后继数
线性表
数据元素扩展
n个数据元素的有限序列 维数扩展
线性表的变型 带头结点、循环、双向
结点变化
操作限制
广义表
数据元素可以 是表的线性表
数组
数据元素之间的 关系在维数上扩 充的线性表
整理ppt

队列
插 入 、 删 插入限定在一
除 限 定 在 端,删除在另
一 端 进 行 一端进行的线
数据结构总结
以线性表作为基本数据结构,从多个方向和层 面上进行拓广: • 引出线性表的各类变型 • 将栈、队列、串视为线性表的特例 • 将数组、广义表、树和图视为线性表的扩展
整理ppt
1
串 n个字符的有限序列


每 个 结 点 每个结点可
可 以 有 多 以有多个后
个后继,但 继和多个前
至多一个 驱
的线性表 性表
2小结Βιβλιοθήκη 该例是学习的总结和升华,围绕线性表这 个最基本的数据结构,鼓励利用已经掌握 的基本内容,去认识和了解未知的和更复 杂的知识。
整理ppt
3
此课件下载可自行编辑修改,供参考! 感谢您的支持,我们努力做得更好!

讲数据结构概述优秀课件

讲数据结构概述优秀课件

✓用图形方式表示如下:
abcde
线性逻辑结构
说明: a是b的直接前驱,b是a的直接后继 a是开始结点,e为终端结点,b、c、d为内部结 点
6、存储结构(物理结构)
数据结构在计算机中的表示(或称映象)称为 数据的存储结构,与计算机密切相关。
四种基本的存储结构: (1)顺序存储结构:用数据元素在存储器 中的相对位置来表示数据元素之间的逻辑关系。 (2)链式存储结构:在每一个数据元素中 增加一个存放地址的指针(→),用此指针来表 示数据元素之间的逻辑关系。 (3)索引存储结构 (4)散列存储结构
描述客观事物的存在计算机中的并可为计算机处理的符号 的总称,是计算机程序加工的”原料”。 (分两类:数值型 数据和非数值型数据)
2、数据元素(Data Element):
是数据的基本单位,在计算机程序中通常作为一个整体进 行考虑和处理。
或称:元素、结点、顶点、记录 对于文件,每个记录就是它的数据元素 对于数组,每个数组元素就是数据元素 对于字符串,字符就是数据元素
项目 3 100 米
200 米 跳高
算法:染色
模型:无向图
----田径赛的时间安排问题解法
(1)用顶点代表比赛项目,设用如下六个不同 的代号代表不同的项目:
跳高 跳远 标枪 铅球 100米 200米
ABC D E
F
(2)不能同时进行比赛的项目之间连上一条边。
某选手比赛的项目必定有边相连(不能同时比赛)
分两大类:线性结构 集合
非线性结构 树型结构 图型结构(网状结构)
(1)集合:结构中的数据元素除了同属于一种类型外,别无其 它关系。
(2)线性结构:结构中的数据元素之间存在一对一的关系。 (3)树型结构:结构中的数据元素之间存在一对多的关系。 (4)图型结构:结构中的数据元素之间存在多对多的关系。

《数据结构》说课稿

《数据结构》说课稿

《数据结构》说课稿引言概述:数据结构是计算机科学中的重要概念,它是指数据元素之间的关系以及对这些关系进行操作的方法。

在计算机科学和信息技术领域中,数据结构是基础中的基础,对于程序设计和算法的理解至关重要。

本文将详细介绍数据结构的基本概念、常见数据结构的分类、数据结构的应用、数据结构的设计原则以及数据结构的学习方法。

一、数据结构的基本概念1.1 数据结构的定义数据结构是指数据元素之间的关系以及对这些关系进行操作的方法。

它是计算机科学中的重要概念,是程序设计和算法实现的基础。

1.2 数据元素与数据项数据元素是数据的基本单位,数据项是数据元素中的一个单元。

数据元素可以是一个整体,而数据项是数据元素中的一个具体部分。

1.3 数据结构的逻辑结构数据结构的逻辑结构包括线性结构、树形结构、图形结构等。

不同的逻辑结构适用于不同的应用场景,可以提高数据的处理效率和程序的性能。

二、常见数据结构的分类2.1 线性结构线性结构包括数组、链表、栈、队列等。

它们的特点是数据元素之间的关系是一对一的,适用于顺序存储和链式存储。

2.2 树形结构树形结构包括二叉树、平衡树、红黑树等。

它们的特点是数据元素之间的关系是一对多的,适用于层次化存储和检索。

2.3 图形结构图形结构包括有向图、无向图、加权图等。

它们的特点是数据元素之间的关系是多对多的,适用于表示复杂的关系网络和路径规划。

三、数据结构的应用3.1 数据库系统数据库系统中的数据结构包括索引、哈希表、B树等,用于提高数据的检索效率和存储空间利用率。

3.2 算法设计算法设计中的数据结构包括堆、图、并查集等,用于解决复杂的计算问题和优化算法效率。

3.3 操作系统操作系统中的数据结构包括文件系统、进程控制块、虚拟内存等,用于实现操作系统的功能和性能优化。

四、数据结构的设计原则4.1 抽象数据类型数据结构的设计应该遵循抽象数据类型的原则,即将数据结构的实现细节与操作接口分离,提高数据结构的灵活性和可维护性。

《数据结构》说课稿

《数据结构》说课稿

《数据结构》说课稿引言概述:数据结构是计算机科学中非常重要的一个领域,它研究如何组织和存储数据,以便能够高效地进行访问和操作。

在本文中,我们将对数据结构进行详细的介绍和解析,从基本概念到常见的数据结构及其应用,帮助读者更好地理解和应用数据结构。

一、基本概念1.1 数据结构的定义和作用数据结构是指一组数据元素及其之间的关系,它们可以用来描述现实世界中的各种问题。

数据结构的作用是提供一种有效的组织和管理数据的方式,以便能够高效地进行数据的存储、检索和操作。

1.2 数据结构的分类数据结构可以分为线性结构和非线性结构。

线性结构包括数组、链表、栈和队列等,它们的特点是数据元素之间存在一对一的关系。

非线性结构包括树和图等,它们的特点是数据元素之间存在一对多或多对多的关系。

1.3 数据结构的复杂度分析数据结构的复杂度分析是衡量数据结构性能的重要指标,它包括时间复杂度和空间复杂度。

时间复杂度表示算法执行所需的时间,空间复杂度表示算法执行所需的内存空间。

二、常见的数据结构2.1 数组数组是一种线性结构,它由一组连续的内存空间组成,用来存储相同类型的数据。

数组的特点是可以通过下标快速访问任意位置的元素,但插入和删除操作比较耗时。

2.2 链表链表也是一种线性结构,它由一组节点组成,每个节点包含数据和指向下一个节点的指针。

链表的特点是插入和删除操作比较快速,但访问任意位置的元素需要遍历链表。

2.3 栈和队列栈和队列都是线性结构,它们分别采用后进先出(LIFO)和先进先出(FIFO)的原则。

栈的插入和删除操作都在同一端进行,而队列的插入操作在一端进行,删除操作在另一端进行。

三、常见的数据结构应用3.1 树树是一种非线性结构,它由一组节点组成,节点之间存在一对多的关系。

树的应用非常广泛,例如在文件系统中用来表示目录结构,在数据库中用来表示索引结构等。

3.2 图图也是一种非线性结构,它由一组节点和节点之间的边组成。

图的应用包括社交网络分析、路线规划、图像处理等领域。

数据结构 知识点总结

数据结构 知识点总结

数据结构知识点总结一、数据结构基础概念数据结构是指数据元素之间的关系,以及对数据元素进行操作的方法的总称。

数据结构是计算机科学中非常基础的概念,它为计算机程序的设计和实现提供了基础架构。

数据结构的研究内容包括数据的逻辑结构、数据的存储结构以及对数据进行操作的算法。

1.1 数据结构的分类数据结构可以根据数据的逻辑关系和数据的物理存储方式进行分类,常见的数据结构分类包括线性结构、树形结构、图结构等。

1.2 数据结构的基本概念(1)数据元素:数据结构中的基本单位,可以是原子类型或者复合类型。

(2)数据项:数据元素中的一个组成部分,通常是基本类型。

(3)数据结构的逻辑结构:指数据元素之间的逻辑关系,包括线性结构、树形结构、图结构等。

(4)数据结构的存储结构:指数据元素在计算机内存中的存储方式,包括顺序存储结构和链式存储结构等。

1.3 数据结构的特点数据结构具有以下几个特点:(1)抽象性:数据结构是对现实世界中的数据进行抽象和模型化的结果。

(2)实用性:数据结构是在解决实际问题中得出的经验总结,是具有广泛应用价值的。

(3)形式化:数据结构具有精确的数学定义和描述,可以进行分析和证明。

(4)计算性:数据结构是为了使计算机程序更加高效而存在的。

二、线性结构线性结构是数据元素之间存在一对一的关系,是一种最简单的数据结构。

常见的线性结构包括数组、链表、栈和队列等。

2.1 线性表线性表是数据元素之间存在一对一的关系的数据结构,可以采用顺序存储结构或者链式存储结构实现。

(1)顺序存储结构:线性表采用数组的方式进行存储,数据元素在内存中连续存储。

(2)链式存储结构:线性表采用链表的方式进行存储,数据元素在内存中非连续存储,通过指针将它们进行连接。

2.2 栈栈是一种特殊的线性表,只允许在一端进行插入和删除操作,这一端称为栈顶。

栈的操作遵循后进先出(LIFO)的原则。

2.3 队列队列也是一种特殊的线性表,允许在一端进行插入操作,另一端进行删除操作,这两端分别称为队尾和队首。

数据结构课件总结

数据结构课件总结
第三章 栈、队列的学习要点:
1. 掌握栈和队列这两种抽象数据类型的特点,并能相应的 应用问题中正确选用它们。
2. 熟练掌握栈类型的两种实现方法,即两种存储结构表示时 的基本操作实现算法,特别应注意栈满和栈空的条件以及 它们的描述方法。
3. 熟练掌握循环队列和链队列的基本操作实现算法,特别注 意队满和队空的描述方法。
4. 理解递归算法执行过程中栈的状态变化过程。
第四章 数组和广义表的学习要点:
1. 了解数组的两种存储表示方法,并掌握数组在以行为主的存 储结构中的地址计算方法。
2. 掌握对特殊矩阵进行压缩存储时的下标变换公式。 3. 了解稀疏矩阵的压缩存储方法的特点,领会以三元组表示稀
疏矩阵时进行矩阵运算采用的处理方法。 4. 掌握广义表的结构特点及其存储表示方法,可将一个非空广
3. 理解教科书中讨论的各种图的算法。
第八章 查找表的学习要点:
1. 熟练掌握顺序表和有序表的查找方法,理解分块查找的方法 和索引存储结构。
2. 熟练掌握二叉排序树的构造和查找方法。 3. 理解在二叉排序树上删除结点的过程。 3. 掌握二叉平衡树的维护平衡方法。 4. 掌握B-树的概念,理解建树、查找和删除结点的过程。 5. 掌握B+树和键树的概念及其特点,以及在其上查找关键字的
义表分解为表头和表尾两部分。
第五章 串的学习要点:
1. 熟悉串的七种基本操作的定义,并能利用这些基本 操作来实现串的其它各种操作。
2. 熟练掌握在串的定长顺序存储结构上实现串的各种 操作的方法。
3. 了解串操作的应用方法和特点。
第六章 树的学习要点:
1. 熟练掌握树、二叉树中的基本概念和性质。 2. 遍历二叉树是二叉树各种操作的基础。不仅要熟练掌握各
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构知识点总结数据结构学习总结壹、研究对象及基本概念首先从数据结构是什么开始,数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。

主要研究:1、数据的逻辑结构,即数据关系之间的逻辑关系;2、数据的存储结构(即物理结构),即数据的逻辑结构在计算机中的表示;3、操作算法,即插入、删除、修改、查询、排序等操作。

一、从数据的逻辑结构划分,即数据之间的逻辑关系从线性分析的角度划分主要有线性结构和非线性结构。

线性结构又可细分为线性表、栈、队列、串、数组。

非线性结构又可细分为树型结构和图结构。

二、从存储结构划分各自的定义及特点:1、顺序存储:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来直接体现。

优点:随机存取表中元素。

缺点:插入和删除操作需要移动大量结点。

2、链式存储:它不要求逻辑上相邻的结点在物理位置上也相邻,结点间的逻辑关系是由附加的指针字段表示的。

它没有顺序存储结构所具有的弱点,但也同时失去了顺序表可随机存取的优点.插入、删除灵活 (不必移动节点,只要改变节点中的指针)。

查找结点时链式存储要比顺序存储慢。

3、索引存储:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。

索引表由若干索引项组成。

索引项的一般形式一般是关键字、地址。

4、散列存储:又称hash存储,是一种力图将数据元素的存储位置与关键码之间建立确定对应关系的查找技术。

散列法存储的基本思想是:由节点的关键码值决定节点的存储地址。

特点:散列是能一种快速实现访问的存储方式。

三、操作算法1、算法定义:对特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。

2、五个重要特性:(1)有穷性;(2)确定性;(3)可行性;(4)输入;(5)输出。

3、算法设计要求:(1)正确性;(2)可读性;(3)健壮性;(4)效率与低存储量需求。

效率的度量:算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。

这是一个关于代表算法输入值的字符串的长度的函数。

时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。

存储空间度量:一个程序的空间复杂度是指运行完一个程序所需内存的大小。

一个算法所需的存储空间用f(n)表示。

S(n)=O(f(n))其中n为问题的规模,S(n)表示空间复杂度。

四、一些基本概念1.数据数据是用于描述客观事物的数值、字符,以及一切可以输入到计算机中的并由计算机程序加以处理的符号的集合。

其范围随着计算机技术的发展而不断发展。

2.数据元素数据的基本单位是数据元素,在计算机程序中通常作为一个整体进行考虑和处理。

3.数据项是数据的不可分割的最小单位,一个数据元素可由若干个数据项组成。

4.数据对象性质相同的元素的集合叫做数据对象。

贰、线性结构一、线性表1.1[定义] 线性表是由n(n≥0)个相同类型的元素组成的有序集合。

记为:( a1,a2,a3,……ai-1,ai,ai+1,…… an )其中:① n为线性表中元素个数,称为线性表的长度;当n=0时,为空表,记为()。

② ai为线性表中的元素,类型定义为elemtype③ a1为表中第1个元素,无前驱元素;an为表中最后一个元素,无后继元素;对于…ai-1,ai,ai+1…(1<i<n),称ai-1为ai的直接前驱,ai+1为ai 的直接后继。

④线性表是有限的,也是有序的。

抽象数据型线性表:线性表 LIST = ( D , R)D = { ai | ai ∈Elementset , i = 1, 2, …, n, n ≥ 0 }R = { H }H = { <ai-1, ai> | ai-1, ai ∈ D , i = 2 , … , n }操作:设L的型为LIST线性表实例,x 的型为elemtype的元素实例,p 为位置变量。

所有操作描述为:① Insert(x, p, L)② Locate(x, L)③ Retrieve(p, L)④ Delete(p, L)⑤ Previous(p, L), Next(p, L)⑥ MakeNull( L)⑦ First( L)⑧End(L)1.2线性表的实现:①顺序表:把线性表的元素逻辑顺序依次存放在数组的连续单元内,再用一个整型量表示最后一个元素所在单元的下标。

特点:元素之间的逻辑关系(相继/相邻关系)用物理上的相邻关系来表示(用物理上的连续性刻画逻辑上的相继性);是一种随机存储结构,也就是可以随机存取表中的任意元素,其存储位置可由一个简单直观的公式来表示。

②单链表:一个线性表由若干个结点组成,每个结点均含有两个域:存放元素的信息域和存放其后继结点的指针域,这样就形成一个单向链接式存储结构,简称单向链表或单向线性链表。

结构特点:逻辑次序和物理次序不一定相同;元素之间的逻辑关系用指针表示;需要额外空间存储元素之间的关系;非随机存储结构一些操作:③双向连表:在单向链表中,对每个结点增加一个域,用一指向该结点的前驱结点。

线性表的这种存储结构称为双向链表。

优点:实现双向查找(单链表不易做到)表中的位置i 可以用指示含有第i 个结点的指针表示。

缺点:空间开销大。

④单向环形链表:在(不带表头结点)的单向链表中,使末尾结点的指针域指向头结点,得到一个环形结构;用指向末尾结点的指针标识这个表。

⑤双向环形链表的结构与双向连表结构相同,只是将表头元素的空previous域指向表尾,同时将表尾的空next域指向表头结点,从而形成向前和向后的两个环形链表,对链表的操作变得更加灵活。

二、栈栈是线性表的一种特殊形式,是一种限定性数据结构,也就是在对线性表的操作加以限制后,形成的一种新的数据结构。

定义:是限定只在表尾进行插入和删除操作的线性表。

栈又称为后进先出(Last In First Out )的线性表。

简称LIFO结构。

即先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。

向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。

实现:顺序栈:链栈:三、队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。

进行插入操作的端称为队尾,进行删除操作的端称为队头。

队列中没有元素时,称为空队列。

队列的数据元素又称为队列元素。

在队列中插入一个队列元素称为入队,从队列中删除一个队列元素成为出队。

因为队列只允许在一段插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。

队列的指针实现:队列的数组实现:在顺序队列中,每次在队尾插入一个元素时,rear增1;每次在队头删除一个元素时,front增1。

随着插入和删除操作的进行,队列元素的个数不断变化,队列所占的存储空间也在为队列结构所分配的连续空间中移动。

当front=rear 时,队列中没有任何元素,称为空队列。

循环队列:在循环队列中,当队列为空时,有front=rear,而当所有队列空间全占满时,也有front=rear。

为了区别这两种情况,规定循环队列最多只能有Maxlength-1个队列元素,当循环队列中只剩下一个空存储单元时,队列就已经满了。

因此,队列判空的条件时front=rear,而队列判满的条件时front=(rear+1)%Maxlength。

四、串字符串或串(String)是由数字、字母、下划线组成的一串字符。

一般记为s=“a1a2···an”(n>=0)。

它是编程语言中表示文本的数据类型。

串(或字符串),是由零个或多个字符组成的有穷序列。

含零个字符的串称为空串,用Ф表示。

串中所含字符的个数称为该串的长度(或串长)。

当且仅当两个串的长度相等并且各个对应位置上的字符都相同时,这两个串才是相等的。

一个串中任意个连续字符组成的子序列(含空串,但不含串本身)称为该串的子串。

例如,“a”、“ab”、“abc”和“abcd”等都是“abcde”的子串(平凡子串不包括自身)。

串的两种最基本的存储方式是顺序存储方式和链接存储方式。

基本与线性表的存储一样,只是存储的内容是字符。

五、数组和广义表1、数组是由下标(index)和值(value)组成的序对(index,value)的集合。

也可以定义为是由相同类型的数据元素组成有限序列。

数组在内存中是采用一组连续的地址空间存储的,正是由于此种原因,才可以实现下标运算。

所有数组都是一个一维向量。

数组的顺序存储;数组的压缩存储:⑴特殊矩阵若n 阶矩阵 A 中的元素满足下述性质aij = aji 1 ≤ i, j ≤ n则称 n 阶对称阵。

对于对称矩阵, 为实现节约存储空间, 我们可以为每一对对称元素分配一个存储空间,这样,原来需要的n2个元素压缩存储到n(n+1)/2 个元素空间。

对称关系:设sa[ 0 . . n(n+1)/2 ] 做为 n 阶对称阵 A 的存储结构, 则Sa[ k ] 和 aij 的一一对应关系为:i(i+1)/2+j 当 i ≥ jk =j(j+1)/2+i 当 i < j(2)、稀疏矩阵中,零元素的个数远远多于非零元素的个数。

为实现压缩存储,考虑只存储非零元素。

2、广义表广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。

(1)广义表常用表示(2)① E=()(3)E是一个空表,其长度为0。

(4)② L=(a,b)(5)L是长度为2的广义表,它的两个元素都是原子,因此它是一个线性表(6)③ A=(x,L)=(x,(a,b))(7)A是长度为2的广义表,第一个元素是原子x,第二个元素是子表L。

(8)④ B=(A,y)=((x,(a,b)),y)(9)B是长度为2的广义表,第一个元素是子表A,第二个元素是原子y。

(10)⑤ C=(A,B)=((x,(a,b)),((x,(a,b)),y))(11)C的长度为2,两个元素都是子表。

(12)⑥ D=(a,D)=(a,(a,(a,(…))))(13)D的长度为2,第一个元素是原子,第二个元素是D自身,展开后它是一个无限的广义表。

(2)广义表的深度一个表的"深度"是指表展开后所含括号的层数。

叁、非线性结构一、树1、一个结点 x 组成的集{ x }是一棵树,这个结点 x 也是这棵树的根。

相关文档
最新文档