数据结构第5章_数组和广义表
- 格式:ppt
- 大小:2.29 MB
- 文档页数:62


数据结构各章概要数据结构是计算机科学中非常重要的一个学科,其主要研究各种数据的组织方式和操作方法。
善于运用合适的数据结构可以提高算法的效率,并优化程序的性能。
本文将对数据结构的各个章节进行概要介绍,帮助读者了解不同章节的主要内容和应用。
第一章:引论在引论章节,我们将引入数据结构的基本概念和术语,例如什么是数据、数据项、数据对象等等。
同时,还将介绍数据结构的分类和基本操作,如搜索、遍历、插入、删除和排序。
这些基础知识是后续章节的基础。
第二章:线性表线性表是数据结构中最简单、最基本的一种结构。
其特点是数据元素之间的前驱和后继关系非常明确。
线性表可以用数组和链表两种方式实现。
在本章节中,我们将分别介绍顺序表和链表的实现原理、插入、删除、合并以及应用场景。
第三章:栈和队列栈和队列是两种特殊的线性表结构,它们对数据的访问具有限制性。
栈具有“先进后出”的特点,而队列则具有“先进先出”的特点。
在本章节中,我们将介绍栈和队列的实现方式以及常见的应用场景,如递归、表达式求值、广度优先搜索等。
第四章:串串是由零个或多个字符组成的有限序列,其长度可以为零。
在本章节中,我们将介绍串的定义和操作,包括字符串的模式匹配、模式识别和编辑操作。
串的相关算法在文本处理、计算机网络等领域具有广泛的应用。
第五章:数组和广义表数组是一种在内存中以连续方式存储的数据结构,它具有高效的随机访问特性。
广义表是线性表的一种扩展,可以包含表结构、原子结构以及其他广义表。
本章节将介绍数组和广义表的定义、操作和应用。
第六章:树树是一种非线性的数据结构,具有分层次、递归和层次遍历等特点。
在本章节中,我们将介绍树的基本概念、二叉树、树的遍历算法、平衡树以及树的应用,如编译器中的语法树、文件系统的目录结构等。
第七章:图图是一种复杂的非线性数据结构,由顶点集合和边集合组成。
在本章节中,我们将介绍图的各种表示方式,图的遍历算法、最短路径算法以及常用的图算法,如最小生成树算法和拓扑排序。
《数据结构与算法》第五章数组和广义表本章介绍的数组与广义表可视为线性表的推广,其特点是数据元素仍然是一个表。
本章讨论多维数组的逻辑结构和存储结构、特殊矩阵、矩阵的压缩存储、广义表的逻辑结构和存储结构等。
5.1 多维数组5.1.1 数组的逻辑结构数组是我们很熟悉的一种数据结构,它可以看作线性表的推广。
数组作为一种数据结构其特点是结构中的元素本身可以是具有某种结构的数据,但属于同一数据类型,比如:一维数组可以看作一个线性表,二维数组可以看作“数据元素是一维数组”的一维数组,三维数组可以看作“数据元素是二维数组”的一维数组,依此类推。
图5.1是一个m行n列的二维数组。
5.1.2 数组的内存映象现在来讨论数组在计算机中的存储表示。
通常,数组在内存被映象为向量,即用向量作为数组的一种存储结构,这是因为内存的地址空间是一维的,数组的行列固定后,通过一个映象函数,则可根据数组元素的下标得到它的存储地址。
对于一维数组按下标顺序分配即可。
对多维数组分配时,要把它的元素映象存储在一维存储器中,一般有两种存储方式:一是以行为主序(或先行后列)的顺序存放,如BASIC、PASCAL、COBOL、C等程序设计语言中用的是以行为主的顺序分配,即一行分配完了接着分配下一行。
另一种是以列为主序(先列后行)的顺序存放,如FORTRAN语言中,用的是以列为主序的分配顺序,即一列一列地分配。
以行为主序的分配规律是:最右边的下标先变化,即最右下标从小到大,循环一遍后,右边第二个下标再变,…,从右向左,最后是左下标。
以列为主序分配的规律恰好相反:最左边的下标先变化,即最左下标从小到大,循环一遍后,左边第二个下标再变,…,从左向右,最后是右下标。
例如一个2×3二维数组,逻辑结构可以用图5.2表示。
以行为主序的内存映象如图5.3(a)所示。
分配顺序为:a11 ,a12 ,a13 ,a21 ,a22,a23 ; 以列为主序的分配顺序为:a11 ,a21 ,a12 ,a22,a13 ,a23 ; 它的内存映象如图5.3(b)所示。