《数据结构 Data Structure》课程教学资源(PPT课件讲稿)第四章 数组、串与广义表

第四章数组、串与广义表 一维数组与多维教组 特殊矩阵 稀疏矩阵 字符串 广义表
第四章 数组、串与广义表 • 一维数组与多维数组 • 特殊矩阵 • 稀疏矩阵 • 字符串 • 广义表 1

一维教组 定义 数组是相同类型的数据元素的集合,而一维 数组的每个数组元素是一个序对,由下标 ( index)和值(vale)组成。 维数组的示例 0123456789 35274918605477834102 在高级语言中的一维数组只能按元素的下标 直接存取数组元素的值
一维数组 • 定义 数组是相同类型的数据元素的集合,而一维 数组的每个数组元素是一个序对,由下标 (index)和值(value)组成。 • 一维数组的示例 • 在高级语言中的一维数组只能按元素的下标 直接存取数组元素的值。 35 27 49 18 60 54 77 83 41 02 0 1 2 3 4 5 6 7 8 9 2

维数组的定义和初始化 #include elem 1; int te p≡eem; for(1=0;1<3;i++) f cout <<*temp<< endl; temp++;) delete l elem
一维数组的定义和初始化 #include void main ( ) { int a[3] = { 3, 5, 7 }, *elem, i; //静态数组 for (i = 0; i > elem[i]; int * temp = elem; for (i = 0; i < 3; i++) { cout << *temp<< endl; temp++; } delete [] elem; } 3

多维教组 多维数组是一维数组的推广。 多维数组的特点是每一个数据元素可以有多 个直接前驱和多个直接后继。 数组元素的下标一般具有固定的下界和上界, 因此它比其他复杂的非线性结构简单。 例如二维数组的数组元素有两个直接前驱 两个直接后继,必须有两个下标(行、列 以标识该元素的位置
多维数组 • 多维数组是一维数组的推广。 • 多维数组的特点是每一个数据元素可以有多 个直接前驱和多个直接后继。 • 数组元素的下标一般具有固定的下界和上界, 因此它比其他复杂的非线性结构简单。 • 例如二维数组的数组元素有两个直接前驱, 两个直接后继,必须有两个下标(行、列) 以标识该元素的位置。 4

二维数组 三维数组 1=5m2=4m 3 a[2][2] m2 3×4×6 2×6 m2 n1 a[3][2]2] 行向量下标i 页向量下标i 列向量下标j 行向量下标j 列向量下标k
二维数组 三维数组 行向量 下标 i 页向量 下标 i 列向量 下标 j 行向量 下标 j 列向量 下标 k 5

数组組的连续存储方式 一维数组 i=0 LOC(e LOC(-1)+l=a+i>0 0123456789 35274918605477834102 +i“l
数组的连续存储方式 一维数组 LOC(i) = LOC(i-1)+l = a+i*l, i > 0 a, i = 0 35 27 49 18 60 54 77 83 41 02 0 1 2 3 4 5 6 7 8 9 l l l l l l l l l l a+i*l a 6

二维数组 一维数组常被称为向量(Ⅴ ector)。 二维数组Am]l可看成是由m个行向量 组成的向量,也可看成是由n个列向量组成 的向量。 个二维数组类型可以定义为其分量类型为 维数组类型的一维数组类型: typedef t array2m]n];团为元素类型 等价于 typedef t arrayln]; /列向量类型 typedef array l array2[m;/二三维数组类型
二维数组 • 一维数组常被称为向量(Vector)。 • 二维数组 A[m][n] 可看成是由 m 个行向量 组成的向量,也可看成是由 n 个列向量组成 的向量。 • 一个二维数组类型可以定义为其分量类型为 一维数组类型的一维数组类型: typedef T array2[m][n]; //T为元素类型 等价于: typedef T array1[n]; //列向量类型 typedef array1 array2[m]; //二维数组类型 7

同理,一个三维数组类型可以定义为其数据 元素为二维数组类型的一维数组类型。 静态定义的数组,其维数和维界不再改变, 在编译时静态分配存储空间。一旦数组空间 用完则不能打充。 动态定义的数组,其维界不在说明语句中显 式定义,而是在程序运行中创建数组对象时 通过new动态分配和初始化,在对象销毁时 通过 delete动态释放。 用一维内存来表示多维数组,就必须按某种 次序将数组元素排列到一个序列中
• 同理,一个三维数组类型可以定义为其数据 元素为二维数组类型的一维数组类型。 • 静态定义的数组,其维数和维界不再改变, 在编译时静态分配存储空间。一旦数组空间 用完则不能扩充。 • 动态定义的数组,其维界不在说明语句中显 式定义,而是在程序运行中创建数组对象时 通过 new 动态分配和初始化,在对象销毁时 通过 delete 动态释放。 • 用一维内存来表示多维数组,就必须按某种 次序将数组元素排列到一个序列中。 8

三维数组的动态定义和初始化 #include int *: int row= 3, col =3; int i,j; a-new int *rowI; for(1=0;1>AlLl; 9
二维数组的动态定义和初始化 #include ………… int **A; int row = 3, col = 3; int i, j; A = new int *[row]; for (i = 0; i > A[i][j]; ………… 9

二维数组中数组元素的顺序存放 无法显示该图片 n行优先存放: 设数组开始存放位置LOC(0,0)=a,每个 元素占用l个存储单元 LOC (,k)=a+(*m+k)*l 10
二维数组中数组元素的顺序存放 ◼ 行优先存放: 设数组开始存放位置 LOC(0, 0) = a, 每个 元素占用 l 个存储单元 ◼ LOC ( j, k ) = a + ( j * m + k ) * l 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,6th edition)Chapter 1 Introduction.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第五章 树.ppt
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,6th edition)Chapter 2 Application Layer.ppt
- 中国科学技术大学:A Practical Verification Framework for Preemptive OS Kernels(PPT讲稿).ppt
- 《算法设计与分析基础》课程教学课件(PPT讲稿)Chapter 2 Fundamentals of the Analysis of Algorithm Efficiency.ppt
- 中国医科大学:《计算机基础》课程教学资源(PPT课件)第8章 Internet应用基础.ppt
- RDA Testing & Comparison with AACR2(session 1).ppt
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,6th edition)Chapter 2 Application Layer.ppt
- 《计算机网络》课程电子教案(PPT教学课件)第二章 物理层.pptx
- 同济大学:企业电子商务系统(PPT讲稿)Enterprise Electronic Business Systems.ppt
- 分布式数据库(PPT课件讲稿)Distributed DBMS Architecture.ppt
- 计算机网络 The Network Layer(PPT课件讲稿)网络互联、Internet上的网络层.ppt
- 《编码理论》课程电子教案(PPT课件讲稿)第二章 信息量和熵.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)代码优化——全局数据流分析技术.ppt
- 网络应用软件(PPT课件讲稿)第一讲 客户-服务器概念、协议端口的使用、套接字API.ppt
- 西安电子科技大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第一章 数制与码制(主讲:王晓甜).pptx
- 大连工业大学:《计算机文化与软件基础》课程教学资源(PPT课件讲稿)绪论、计算机系统的组成、计算机中数的表示.pps
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第4章 存储层次结构设计.pptx
- 中国科学技术大学:《数据结构及其算法》课程电子教案(PPT课件讲稿)第七章 图.pps
- 《计算机视觉》课程教学资源(PPT课件讲稿)基于灭点几何的深度图重建、基于焦点变换的深度图重建.ppt
- 中国科学技术大学:《现代密码学理论与实践》课程教学资源(PPT课件讲稿)第10章 密钥管理与其他公钥体制.pptx
- 中国科学技术大学:《算法基础》课程教学资源(PPT课件讲稿)第四讲 递归和分治策略(主讲人:吕敏).pptx
- 中国科学技术大学:《数值分析》课程教学资源(PPT课件讲稿)第1章 插值.ppt
- 《网络算法学》课程教学资源(PPT课件讲稿)第二部分 端节点算法学 第五章 拷贝数据.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第三章 流水线技术.pptx
- 北京航空航天大学:动态拼车服务中的高效插入操作(PPT讲稿)An Efficient Insertion Operator in Dynamic Ridesharing Services.pptx
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)第一章 概述(主讲:马涛).pptx
- 计算机语言的学科形态与发展历程(PPT课件讲稿).ppt
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)概述(主讲:岳鹏).ppt
- 南京航空航天大学:《C++》课程电子教案(PPT课件讲稿)第4章 类的高级部分.ppt
- 《神经网络和模糊系统》课程教学资源(PPT讲稿)第四章 突触动力学、非监督学习.ppt
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,4th edition)Chapter 1 Introduction.ppt
- 清华大学:不确定型决策(PPT讲稿)Decision Making under Uncertainty.pptx
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)第五章 传输层.pptx
- 《机器学习》课程教学资源(PPT课件讲稿)第七章 贝叶斯分类器 MACHINE LEARNING.pptx
- 清华大学:计算机科学与技术(PPT讲稿)组播 Multicast.pptx
- 《网络算法学》课程教学资源(PPT课件讲稿)第四章 原则的运用.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第7章 电子商务与物流.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿,第三版)Chapter 04 网络层 Network Layer.ppt
- Efficient Algorithms for Optimal Location Queries in Road Networks.ppt