第5章 数组和广义表
更新时间:2023-05-13 02:05:01 阅读量: 实用文档 文档下载
数据结构(Java)(第三版) 课件
数据结构(Java版)
数据结构(Java)(第三版) 课件
《数据结构(Java版)》 第0章 Java程序设计基础 第1章 绪论 第2章 线性表 第3章 栈和队列 第4章 串 第5章 数组和广义表 第6章 树和二叉树 第7章 图 第8章 排序 第9章 查找 第10章 综合应用设计
数据结构(Java)(第三版) 课件
第5章 数组和广义表 5.1 数组 5.2 特殊矩阵的压缩存储 5.3 广义表
数据结构(Java)(第三版) 课件
本章学习目标 目的:了解包含子结构的线性结构。 要求:理解多维数组的存储结构,了解 特殊矩阵压缩存储,了解广义表。 重点: 难点:广义表的表示和实现。
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
5.1 数组5.1.1 一维数组5.1.2 多维数组
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
5.1.1 一维数组
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
数组(array)是一种数据结构,数组元素具有相同的数 据类型。数组的内存分配有静态和动态两种方式。静态数组在声明 时给出数组元素个数;动态数组在声明时不指定数组长度, 当程序运行中需要使用数组时,向系统申请数组的存储单 元空间,并给出数组长度。
在Java中,数组元素既可以简单数据类型,也可以是引用 类型。而且Java中的数组都是动态数组。静态数组和动态数组都是定长的,当数组容量不够时,都 不能就地扩容。因此,数组只能进行赋值、取值两种随机 存取操作,不能进行插入、删除操作。 一维数组的逻辑结构是线性表,多维数组是线性表的扩展。 一维数组采用顺序存储结构,数组元素的存储地址为 Loc(ai)= Loc(a0)+i ×c
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
5.1.2
多维数组
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
1. 多维数组的逻辑结构
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
2. 多维数组的遍历二维数组进行遍历的操作有两种次序:行主序和列主序。
(1)行主序 以行序为主序,按行递增访问数组元素,访问完第i行 的所有元素之后再访问第i+1行的元素,同一行上按列递增 访问数组元素。(2)列主序 以列序为主序,按列递增访问数组元素,访问完第j列 的所有元素之后再访问第j+1行的元素,同一列上按列递增 访问数组元素。
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
3. 多维数组的存储结构(1)静态多维数组的顺序存储结构
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
(2)动态多维数组的存储结构
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
【例】 矩阵类。
Am n
a 00 a1 0 … a m 1, 0
a 01 a1 1 … a m 1,1
a 0 , n 1 … a1, n 1 … … … a m 1, n
1 …
矩阵运算主要有矩阵加、矩阵减、矩阵乘、矩阵转 置等。矩阵加(C=A+B)定义为
c ij a ij bij
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
public class Matrix{ private int value[][]; //存储矩阵元素的二维数组 public Matrix(int m, int n) { //构造m行n列的空矩阵 this.value=new int[m][n]; } public Matrix(int n) { //构造n行n列的空矩阵 this(n,n); } public Matrix(){ this(10,10); } public Matrix(int mat[][]) { //构造矩阵,由数组mat提供矩阵元素 this(mat.length,mat[0].length); for (int i=0; i<mat.length; i++) for (int j=0; j<mat[i].length; j++) this.value[i][j] = mat[i][j]; }
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
public int get(int i, int j) { //获得矩阵第i行第j列的元素,O(1) return value[i][j]; } public void set(int i, int j, int k) { //设置矩阵第i行第j列的元素,O(1) value[i][j]=k; } public String toString() { //行主序遍历,访问矩阵全部元素 String str=""; for (int i=0; i<value.length; i++) { for (int j=0; j<value[i].length; j++) str += " "+value[i][j]; str += "\n"; } return str; }
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
public void add(Matrix b) //this和b两个矩阵相加,改变当前矩阵 { for (int i=0; i<this.value.length; i++) for (int j=0; j<this.value[i].length; j++) this.value[i][j] += b.value[i][j]; } public Matrix transpose() //返回转置矩阵 { Matrix trans = new Matrix(value[0].length, value.length); for (int i=0; i<this.value.length; i++) for (int j=0; j<this.value[i].length; j++) trans.value[j][i]=this.value[i][j]; return trans; } }
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
class Matrix_ex{ public static void main(String args[]){ int m1[][]={{1,2,3}, {4,5,6}}; Matrix a=new Matrix(m1); int m2[][]={{1,0,0}, {0,1,0}}; Matrix b=new Matrix(m2); System.out.print("Matrix a:\n"+a.toString()); System.out.print("Matrix b:\n"+b.toString()); a.add(b); System.out.print("Matrix a:\n"+a.toString()); System.out.println(“a的转置矩阵:\n“ +a.transpose().toString()); } }
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
程序运行结果如下:
Matrix a: 1 2 3 4 5 6 Matrix b: 1 0 0 0 1 0 Matrix a: 2 2 3 4 6 6 a的转置矩阵: 2 4 2 6 3 6
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
5.2 特殊矩阵的压缩存储5.2.1 对称(三角)矩阵的存储5.2.2 稀疏矩阵的压缩存储
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
5.2.1 对称(三角)矩阵的存储
数据结构(Java)(第三版) 课件
《数据结构(Java版)》第5章 数组和广义表
1. 三角矩阵a 设 A n n 是一个n阶下三角矩阵,当i<j时, ij 0 。
An n
a 0 ,0 a1,0 … a n 1,0
0 a1,1 … a n 1,1
…
… 0 … … … a n 1, n 1 0
矩阵中非零元素总数为:
( i 1) i 0
n 1
n( n 1) 2
正在阅读:
第5章 数组和广义表05-13
幼儿园中班健康活动教案:能干的我03-20
会计基础考前试卷八套02-03
2018-2019-煤矿企业年度工作总结范文word版本(2页)06-17
View5.0快速部署手册v304-30
浅析CL建筑体系在多层建筑中的应用09-26
中国人寿新沂支公司关于深入开展机关作风和效能建设“三治三提六06-27
JavaWeb实验指导书04-30
2017给水工程项目建议书Word版05-09
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 数组
- 广义
- 浅谈郑和下西洋为什么没有对世界造成如西方一样的影响
- 计算机科学与技术导论论文
- 茶叶产业状况调研报告文档2篇
- 读图时代的到来对新闻摄影记者的机遇与挑战
- IEC60695-10-2球压测试标准
- 09年工作总结10年工作展望
- 2013二建法规模拟(2)
- 芽芽班幼儿的年龄特点
- 用列举法解决问题(2)
- 2015年秋季中国特色社会主义体系概论试卷与答题纸
- 基于虚拟仪器技术的电磁阀综合特性测控系统
- 中考动词语法详解
- 高二化学烃的衍生物知识总结
- 郑旺小学常识教研工作总结
- 广东省安全生产条例
- 发回重审、再审、申诉、问题
- 2018吉林大学《科学道德与学术规范》
- 特岗教师三年以来个人工作总结
- 公路工程路基路面雨季施工技术探讨
- iso-ts16949简介和导入_