数据结构教学导案Word格式文档下载.docx

上传人:b****3 文档编号:13980098 上传时间:2022-10-16 格式:DOCX 页数:19 大小:27.03KB
下载 相关 举报
数据结构教学导案Word格式文档下载.docx_第1页
第1页 / 共19页
数据结构教学导案Word格式文档下载.docx_第2页
第2页 / 共19页
数据结构教学导案Word格式文档下载.docx_第3页
第3页 / 共19页
数据结构教学导案Word格式文档下载.docx_第4页
第4页 / 共19页
数据结构教学导案Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据结构教学导案Word格式文档下载.docx

《数据结构教学导案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构教学导案Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

数据结构教学导案Word格式文档下载.docx

电脑+理论

教学方法

投影、讨论、板书

教学过程

设计

(包括讲授知识、演示内容及案例、提问及学生演示内容)

任务一、数组的定义、运算

前言:

(用时10分钟)

前4章介绍的数据结构共同特点:

(1)都属于线性数据结构;

(2)每种数据结构中的数据元素,都作为原子数据,不再进行分解;

本章讨论的两种数据结构:

数组和广义表,其共同特点是:

1)从逻辑结构上看它们,可看成是线性结构的一种扩展;

2)数据元素本身也是一个数据结构;

一、数组的概念(用时10分钟)

数组是由一组个数固定,类型相同的数据元素组成阵列。

以二维数组为例:

二维数组中的每个元素都受两个线性关系的约束

安徽新华电脑专修学院课堂教学教案

(电脑应用课使用)

(续表)

即行关系和列关系,在每个关系中,每个元素aij都有且仅有一个直接前趋,都有且仅有一个直接后继。

在行关系中

aij直接前趋是aij-1

aij直接后继是aij+1

在列关系中

aij直接前趋是ai-1j

aij直接后继是ai+1j

二维数组也可看作这样的线性表:

其每一个数据元素也是一个线性表

A=(α0,α1,α2,α3,α4,……,αp)

其中每一个数据元素αj是一个列向量的线性表

αj=(a0j,a1j,a2j,a3j,……,am-1j)

或αi是一个行向量的线性表

αi=(ai0,ai1,ai2,ai3,……,ain-1)

二、数组的基本操作(用时10分钟)

1读元素操作

2写元素操作

操作方法根据其存储结构决定

 

任务二、数组的顺序存贮结构(用时20分钟)

一维数组在内存中的存放很简单,只要顺序存放在连续的内存单元即可。

二维数组,如何用顺序结构表示?

内存地址是一维的,而数组是二维的,要将二维数组挤入一维的地址中,有两个策略:

以行为主序(C语言使用)

以列为主序

数组元素存储地址的计算:

假设二维数组A每个元素占用s个存储单元,Loc(aij)为元素aij的存储地址,Loc(a00)是a00存储位置,也是二维数组A的基址。

若以行序为主序的方式存储二维数组,则元素aij的存储位置可由下式确定:

Loc(aij)=Loc(a00)+(n⨯i+j)⨯s

若以列序为主序的方式存储二维数组,则元素aij的存储位置可由下式确定:

Loc(aij)=Loc(a00)+(m⨯j+i)⨯s

一般在程序设计过程中,一维数组和二维数组使用较普遍,超过二维以上的多维数组使用相对较少,对于高维数组的顺序存储方法,可以将二维的情形加以推广便能够得到。

复习思考题

作业

上机任务

案例分析:

以二维数组形式为例

参考文献

《数据结构》(C语言版)扬振生中国科学技术大学出版社

课后记

(或归纳小结)

本小节主要介绍数组的定义,存储(以行为序或以列为序)等等

2

课题引入(用时10分钟)

任务三、矩阵的压缩存储

(用时20分钟)

矩阵是许多科学与工程计算问题中常常涉及到的一种运算对象。

一个m行n列的矩阵是一平面阵列,有m⨯n个元素。

可以对矩阵作加、减、乘等运算。

只有少数程序设计语言提供了矩阵运算。

通常程序员是用二维数组存储矩阵。

由于这种存储方法可以随机地访问矩阵的每个元素,因而能较为容易地实现矩阵的各种运算。

应用中常遇到一些阶数很高的矩阵,矩阵中有许多值相同的元素或零元素。

二维数组存储矩阵会浪费很多的存储单元。

例如,设一个1000⨯1000的矩阵中有800个非零元素,若用二维数组存储需要106个存储单元。

因此,需要使用高效的存储方法,减少数据的存储量,即对原矩阵,根据数据分布特征进行压缩存储。

本章将讨论两类矩阵的压缩存储:

1特殊矩阵的压缩存储

2稀疏矩阵的压缩存储

一、特殊矩阵(用时40分钟)

值相同元素或者零元素分布有一定规律的矩阵称为特殊矩阵

例对称矩阵、上(下)三角矩阵都是特殊矩阵

特殊矩阵压缩存储(以对称矩阵为例)

对称矩阵是满足下面条件的n阶矩阵:

aij=aji0≤i,j≤n-1

a00a01a0n-1

a10a11a1n-1

an-10an-11an-1n-1

a00

a10a11

a20a21a22

对称矩阵元素可以只存储下三角部分,共需n(n+1)/2个单元的空间

(三角矩阵的存储方式类似)

以一维数组sa[]作为n阶对称矩阵A的存储结构,A中任意一元素aij与它的存储位置sa[k]之间存在着如下对应关系:

K=

i(i+1)/2+j当i≥j

j(j+1)/2+i当i<

j

例如,a53在sa[]中的存储位置是:

k=5*(5+1)/2+3=18

sa[18]=a53

压缩存储的对称矩阵的取值算法

intget_M(inti,intj)

{if(i>

=j)return(sa[i*(i+1)/2+j])

elsereturn(sa[j*(j+1)/2+i]);

}

压缩存储的对称矩阵的赋值算法

voidassign_M(inti,intj,intvalue)

=j)sa[i*(i+1)/2+j]=value;

elsesa[j*(j+1)/2+i]=value;

带状矩阵(用时30分钟)

所有非0元素都集

中在以主对角线为中心的带状区域,半带宽为d时,非0元素有

(2d+1)*n-(1+d)*d个

为计算方便,认为每一行都有2d+1个非0元素,若少则用0补足,所以,存放矩阵的数组sa[]有n(2d+1)个元素

数组元素sa[k]与矩阵元素aij之间有关系

k=i*(2d+1)+d+(j-i)

压缩存储的带状矩阵的取值算法

intget_Md(inti,intj)

{if(abs(i-j)<

=d)return(sa[i*(2*d+1)+d+(j-i)]);

elsereturn(0);

压缩存储的带状矩阵的赋值算法

voidassign_Md(inti,intj,intvalue)

=d)sa[i*(i+1)/2+j]=value;

以课件上的例子为案例进行分析

本小节主要介绍特殊矩阵的存储,如对称矩阵、上(下)三角矩阵、带状矩阵,它们的存储形式等等

任务三、矩阵的压缩存储(续)

二、稀疏矩阵(用时40分钟)

1、什么是稀疏矩阵

有较多值相同元素或较多零元素,且值相同元素或者零元素分布没有一定规律的矩阵称为稀疏矩阵。

01290000

A有42(67)个元素

有8个非零元素

0000000

A=

-30000140

00240000

01800000

1500-7000

2、稀疏矩阵的压缩存储(只讨论有较多零元素矩阵的压缩存储)

1)三元组表(i,j,aij)

A=((0,1,12),(0,2,9),(2,0,-3),(2,5,14),(3,2,24),(4,1,18),(5,0,15),(5,3,-7))

加上行、列数6,7

2)三元组顺序表

假设以顺序存储结构来表示三元组表,则可得稀疏矩阵的一种压缩存储方式——我们称之为三元组顺序表。

稀疏矩阵的三元组顺序表的类型定义

structnode

{introw,col;

//非零元的行下标和列下标

intvalue;

//非零元值

};

typedefstructnodeNODE;

NODEma[MAX];

ma[0]用于存储矩阵行数、列数、非零元个数

图示见课件

3)转置运算算法

转置运算是一种最常用的矩阵运算。

对于一个m行n列的矩阵A,它的转置矩阵B是一个n行m列的矩阵。

例如,下图中的矩阵A和B互为转置矩阵。

B=

00-30015

12000180

9002400

00000-7

000000

0014000

000000

转置运算算法

B

第0行

第一行

第二行

第三行

第四行

第五行

第六行

A

第0列

第一列

第二列

第三列

第四列

第五列

第六列

按照A的列序来进行转换的基本思想

对ma[]从头至尾扫描:

第一次扫描时,将ma[]中列号为0的所有元组交换行列值后,依次赋值到mb[]中

第二次扫描时,将ma[]中列号为1的所有元组交换行列值后,依次赋值到mb[]中

依此类推,直至将ma[]的所有三元组赋值到mb[]中

转置算法:

采用三元组表存储表示,求稀疏矩阵A的转置矩阵B

int

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1