数据结构讲义严蔚敏版第4章

? 4.2 基本体的表面取点 ? 4.3 平面与立体表面的交线 结束放映

? 4.1 基本体的三视图 ? 4.4 立体与立体表面的交线 ? 4.5

基本体三维造型

4.1 基本体的三视图

常见的基本几何体

平面基本体曲面基本体

一、画基本体三视图的方法步骤

1 .确定三个视图的位置。选择立体上的一个点或立体的对

称中心线、主要棱线、平面等作为画图参考基准;先画

出它们的三个视图(布图),注意要做到横平竖直。

2.画出反映立体主要形状特征(实形)的视图。

3 .再根据立体的长、宽、高尺寸(相对坐标),依照“长

对正、高平齐、宽相等”的规律,完成另外两个视图。

4 .视图完成后,应擦去作图辅助线。

?立体是具有三维坐标的实心体,研究的立体投影是研究立体表面的投影。

?立体是有具体形状和尺寸大小的形体。画三视图时,主要用长、宽、高方向的相对坐标,与投影轴无关,从这里开始不再画出投影轴。

开始画三视图! 在图示位置时,五棱柱的上

下两底面为水平面,在俯视图中反映实形(五边形).后侧棱面是正平面,其余四个侧棱面是铅垂面,它们的水平投影都积聚成直线,与五边形的边重合。

⑵ 五棱柱的三视图 ⑴ 棱柱的组成

由上下两个底面和若干侧棱面组成。侧棱面与侧棱面的交线叫侧棱线,侧棱线相互平行。

1.棱柱 二、平面基本体

a 0 ●

a 0"

a 0' ●

(1)布图:选点AO画图参考基准,画出其三个投影图。 2) 画出反映立体主要形状特征的俯视图。 (3) 由“长对正”和立体的高度画出主视图。 4利用“宽相等”和"高平齐”画出左(二求三)。

三视图概念

棱锥处于图示位

置时,其底面 ABC 是水平面,在俯视图上反映实形。侧棱面SBC 为正垂面,另两个侧棱面为一般位置平面。

2.棱锥

⑵ 三棱锥的三视图

⑴ 棱锥的组成 由一个底面和若干侧棱面组成。侧棱线交于有限远的一点——锥顶。 A

B

C

S

a ●

a "

a ' ●

s '

b '(

c '

)

s

s " ●

b " 开始画三视图! (1)布图: 选点A为画图参考基准,画出其三个投影图。 (2) 画出反映底面实形的底面及锥顶 S 的水平投影。 (3) 由“长对正”和立体的高度画出主视图。 4)利用“宽相等”和"高平齐”画出左(二求三)。

三视图概念

在图示位置时,圆柱轴线为铅垂线,圆柱的顶面和底面是水平面,水平投影为反映实形的圆。圆柱面的俯视图积聚成一个圆;在另两个视图上分别是两个矩形。

三、回转体

1.圆柱体

⑵ 圆柱体的三视图 ⑶ 轮廓线素线的投影分析 与曲面的可见性的判断 ⑴ 圆柱体的组成 圆柱体由圆柱面和两个底面组成。 其中:圆柱面是由直线AA 1绕与它平行的轴线OO 1旋转而成。直线 AA 1称为母线。圆柱面上与轴线平行的任一直线称为圆柱面的素线.

A 1 A

O

O 1 d ″ d 0″ (d ′ (d 0′ )

)

d(d 0)

b ′ b 0′ b ″ b 0″ a(a 0)

a 0′

a ′ a ″ a 0″

c ′ c 0′ c(c 0) (c ″ (c 0″ ) ) 开始画三视图! 1)布图:选回转轴和底面棱线为画图参考基准。 2) 画出反映立体主要形状特征的俯视图。 (3) 由“长对正”和立体的高度画出主视图。 4利用“宽相等”和"高平齐”画出左(二求三)。 轮廓线素线的投影分析与曲面的可见性的判断

(1) AAO、CC

O为对V面的转向轮廓线,它前边的点可见。 2BB、DD对W面的转向轮廓线,它左边的点可见。转向轮廓线概念 三视图概念

⑶ 轮廓线素线的投影分析 与曲面的可见性的判断 在图示位置,俯视图为

一圆。另两个视图为等腰三角形,三角形的底边为圆锥底面的投影,两腰分别为圆锥面不同方向的两条转向轮廓线的投影。 ⑴ 圆锥体的组成 2.圆锥体

⑵ 圆锥体的三视图 其中:圆锥面是由直线SA 绕与它相交的轴线OO 1旋转而成。S 称为锥顶,

直线SA 称为母线。圆锥面上过锥顶的任一直线称为圆锥面的素线。

圆锥体由圆锥面和底面组成。 s " ●

s ' ●

s

a

a ′

a ″

b ′ b ″

c

c ′ (c ″ ) 开始画三视图! (1布图:选回转轴和底面棱线为画图参考基准。 (2) 画出反映立体主要形状特征的俯视图。 3由“长对正”和立体的高度画出主视图。 4)利用“宽相等”和"高平齐”画出左(二求三)。 d

(d ′ ) d ″

轮廓线素线的投影分析与曲面的可见性的判断 (1) S A、S C为对V

面的转向轮廓线,它前边的点可见。

(2) S B、S D为对W面的转向轮廓线,它左边的点可见。 O 1

O

S A

转向轮廓线概念

三视图概念

三个视图分别为三个和

圆球的直径相等的圆,它们分别是圆球三个方向转

向轮廓线的投影。 3.圆球

其中:球面是圆母线以它的直径为轴旋转而成。

⑵ 圆球的三视图 ⑶ 轮廓线的投影与曲 面可见性的判断 ⑴ 圆球体的形成

O

O 1

开始画三视图! 1布图:选三个圆的对称中心线作为画图的参考基准; 2) 画出球体的主(3) 画出球体的俯视图——圆;

(4画出球体的左 视图——圆; 轮廓线素线的投影分析与曲面的可见性的判断 (1) 最大的正平圆A为对V面的转向轮廓线,它前边的点可见。(2) 最大的水平圆B为对H面的转向轮廓线,它上边的点可见。 (3) 最大的侧平圆C为对W面的转向轮廓线,它左边的点可见。a ′

a

a ″

c ″

c

c ′

b

b ′

b ″

球体的表面是球面。 转向轮廓线概念

三视图概念

图示位置的圆环,是圆心为O 的正平圆绕一铅垂线旋转而成的,圆上任意点的运动轨迹为垂直于轴线的水平圆(纬圆)。靠近轴线的

半个母线圆形成的环面称内

环面,远离轴线的半个母线4.圆环

⑵ 圆环的三视图 ⑶ 轮廓线的投影与曲

面可见性的判断 ⑴ 圆环体的形成

其中:环面是圆母线绕圆所在平面上,且在圆外的一直线为轴旋转而成。

开始画三视图! 轮廓线素线的投

影分析与曲面的可见性的判断 (1) 前半外环面的投影可见,后半外环面和内环面的投影不可见; (2) 上半外、内环面的投影的投影可见,下半环面的投影不可见; (3) 左半外环面的投影可见,右半外环面和内环面的投影不可见; 圆环体的表面是环面。 转向轮廓线概念

三视图概念

4.2立体表面的取点

一、立体表面取点的方法步骤

1、根据已知立体表面上点的一个投影及其可见性,判断该点在

立体上的位置;

2、求第二个投影。根据立体的投影情况有两种求法:

①积聚性法:如果立体在某个投影图中的投影有积聚性,可直接

在其有积聚性的投影图中得到点的第二个投影。

★先分析立体投影的积聚性,在哪个投影图上有积

聚性,就先求点在那个投影图中的投影。

②辅助线法:如果立体在各投影图中的投影都没有积聚性,可利

用过点作辅助线的方法得到点的第二个投影。

★辅助线应为直线或平行某投影面的圆。

3、利用点的投影规律求第三个投影。即所谓“二求三”。

点的可见性规定:若点所在的平面的投影可见,点的投影也可见;若平面的 1.棱柱表面上取点 二、积聚性法

例4-7 已知五棱柱表面上点的正面投影 ,求作另两投影。 f ' (e '

)

f

f " ●

e "

e

第一步:

由题给投影可看出,点F 在铅垂棱面

AA 0BB 0上,其正面投影可见;点E 在正 平棱面DD 0EE 0上,其正面投影不可见.

第二步:

利用铅垂棱柱水平投影的积聚性,

得到F 、E 的水平投影f 、e . 第三步:

利用投影规律(长对正,高平齐,宽相等)求侧面投影f "、e "。即 所谓“二求三”。

如果立体是棱柱、圆柱,它们在某个投影图中的投影

往往有积聚性,可直接在其有积聚性的投影图中得到点的第二个投影。 注意:先分析立体投影的积聚性,在哪个投影图上有积聚性,就先求点在那个投影图中的投影。

2.圆柱表面上取点

第一步:

①由题给投影可看出,点A 在铅垂圆柱面的前半部;点B 在后半部.②点C 在侧面前转向轮廓线上.③点D 在上平面上.

第二步:

①利用铅垂圆柱水平投影的积聚性,得到A 、B 的水平投影a 、b .②利用点 C 在转向轮廓线上的从属性得到C 的水平投影c .③利用上水平面的积聚性得到D 的正面投影d′.

第三步:

利用投影规律(长对正,高平齐,宽相等)求第三投影a "、b "、c′和d″。即所谓“二求三”。

例4-8 已知圆柱表面上点的一个投影 ,求作另两投影。

d

c "

a '

(b '

)

c

b

(b ″ )

d ′

d ″

a

c ′ ●

a ″

1.棱锥表面上取点 三、辅助线法

如果立体是锥、球等,它们在各投影图中的投影都没有积聚性,此时可利用“点在线上,线在面上”的原理,利用过点作辅助线的方法得到点的第二个投影。

注意:辅助线应为直线或平行某投影面的圆。 第一步:

由题给投影可看出,点D 位于前棱面SAB 上,点E 位于后棱面SAC 上,它们的正面投影重合,棱锥没有积聚性. 第二步: 在平面立体上过一点可做出多条直

线,这里给出了三种不同的做辅助

线方法,求得F 、E 的水平投影d 、e . 第三步:

利用投影规律(长对正,高平齐,宽相等)求侧面投影d "、e "。即

所谓“二求三”。

例4-9 已知三棱锥表面上点D 和E 的正面投影,求作另两投影。 d '(e ') 方法一:过锥顶作辅助直线 1'(2')

2 ●

1

e

● ● e " ●

d

'(e ') 方法二:作底边平行线为辅助线 ● d

g ′ ●

g

● ●

d '(

e ') 方法三:任作一直线为辅助线 m′

n ′ ●

m ● n

n ●

● ●

方法一:素线法

2.圆锥表面取点

例4-10 已知圆锥表面上点A 的正面投影,求作另两投影。 a ' 第一步:

由题给投影可确定点A 位于圆锥的前表面上,并在右表面上,圆锥没有积聚性。

第二步:

在圆锥上过一点可做出一条直素线,也做出一个纬圆,求得A 的水平投影a 。

第三步:

利用投影规律(长对正,高平齐,宽相等)求得侧面投影a "。即所谓“二求三”。

1'

● a ●

(a ")

a '

方法二:纬圆法 ●

a ●

第一步:

由题给投影可看出:①点A 在球的前上半部②点B 在V 面转向轮廓线上(下边)③点C 在H 面转向轮廓线上(右边)。 第二步:

①利用在球面上做水平圆辅助线得到A 水平投影a ②利用点B 在V 面转向轮廓线上的从属性得到B 的正面投影b′③利用点C 在H 面转向轮廓线上的从属性得到C 的水平投影c 。

第三步:

利用投影规律(长对正,高平齐,宽相等)求第三投影a "、b "和c′,即所谓“二求三”。

例4-11 已知球表面上点A 、B 、C 的一个投影,求作另两投影。

a

b ' ●

(b ″ ) ●

c

a "

(c '

)

例4-12 已知圆环面上点A 、B 的一个投影,求它们的另一投影。

a '

b

( ) 第一步:

由题给投影可看出:①点A 在外环面的前上半部 ②点B 在内环面的前下半部。环面没有积聚性。

第二步:

在题给环面上只能做水平圆为辅助线①利用在环面上做水平圆辅助线得到A 水平投影a ,②利用在环面上做水平圆辅助线得到B 的正面投影b′。

a (

b '

)

1.概念:用平面与立体相交,截去立体的一部 分——截切。

? 截平面与立体表面的交线——截交线。

? 用以截切立体的平面——截平面。 4.3

平面与立体相交 — 截交线

一、截交线的概念

2.截交线的性质:

截交线

(1) 截交线是一个或几个封闭的

平面图形。

(2) 截交线的形状取决于被截立

体的形状及截平面与立体的

相对位置。(截交线的投影的

形状取决于截平面与投影面

的相对位置。)

(3) 截交线是截平面与立体表面

的共有线。

——求截交线的作图实质是

找出截平面与立体表面的若干共有点的投影。

(2)分析截交线的投影情况 (1)求截交线上的特殊位置上的点 (二)作图步骤: (2)求截交线上的一般位置上的点 (3)判断可见性并光滑连接 (4)修补题给棱线、转向轮廓线的投影 二、截交线的求法

(1)分析截交线的空间形状

(一)形体分析

? 通常截平面在一个投影图中有积聚性,即已知截交线的一

个投影。因此,求截交线的过程就是立体表面取点的过程。 ? 在截交线有积聚性的投影图中,先标注出这些所求点的一 个投影;而后在立体表面上取点,求另外两个投影。

①棱线上的点:它是被截棱线与保留棱线的分界点,它往 往还是截交线转折处的折点。 ②转向轮廓线上的点:它是被截转向轮廓线与保留转向 轮廓线的分界点。 ③极限位置上的点:截交线上最前、最后、最左、最右、 最上、最下点,它不但控制曲线范围, 往往还是曲线走向改变的点。

①一般情况下:截交线是一条平面曲线

②特殊情况下:截交线是多边形或圆弧 ①积聚性:截切面有积聚性,可已知截交线的一个投影.

②实形性:截交线的某个投影反映实形则可简化作图.

③对称性:截交线的对称可简化作图

①若截交线是一般情况:为保证作图精度,还应再在截 交线上做出若干一般点。 ②若截交线是特殊情况:则无需再做一般点。 ①将被截切去的棱线、转向轮廓线的投影擦除至分界点。 ②将保留的棱线、转向轮廓线的投影加深至分界点。 注意:棱线、轮廓线上的点往往是可见与不可见的分界点。

三、平面与平面立体相交

① 平面与平面立体相交,其截交线形状是由直

线段组成的封闭多边形。

② 多边形的顶点(折点)是平面立体的棱线与

截平面的交点;也是截交线上的特殊点。(此时无需求做其他特殊点或一般点)

严蔚敏版数据结构课后习题答案-完整版

第1章绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据

类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。 1.3 设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 解: ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C)

严蔚敏数据结构题集(C语言版)完整

严蔚敏 数据结构C 语言版答案详解 第1章 绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。 1.3 设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 解: ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C) 操作结果:销毁复数C Get(C,k,&e) 操作结果:用e 返回复数C 的第k 元的值 Put(&C,k,e) 操作结果:改变复数C 的第k 元的值为e

严蔚敏版数据结构复习题

数据结构复习题集 一、判断题 1.线性表的长度是线性表所占用的存储空间的大小。( F ) 2.双循环链表中,任意一结点的后继指针均指向其逻辑后继。( F ) 3.在对链队列做出队操作时,不会改变front指针的值。( F ) 4.如果两个串含有相同的字符,则说它们相等。( F ) 5.如果二叉树中某结点的度为1,则说该结点只有一棵子树。(T ) 6.已知一棵树的先序序列和后序序列,一定能构造出该树。( F ) 7.图G的一棵最小代价生成树的代价未必小于G的其它任何一棵生成树的代价。(T ) 8.图G的拓扑序列唯一,则其弧数必为n-1(其中n为顶点数)。( F ) 9.对一个堆按层次遍历,不一定能得到一个有序序列。(T ) 10.直接选择排序算法满足:其时间复杂度不受数据的初始特性影响,为O(n2)。(T ) 11. 线性表的逻辑顺序与物理顺序总是一致的。( F ) 12. 线性表的顺序存储表示优于链式存储表示。( F ) 13.线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。(T ) 14. 二维数组是其数组元素为线性表的线性表。( F )

15. 每种数据结构都应具备三种基本运算:插入、删除和搜 索。(T ) 16.(101,88,46,70,34,39,45,58,66,10)是堆;(T ) 17.将一棵树转换成二叉树后,根结点没有左子树;( F ) 18.对不含相同元素的同一输入序列进行两组不同的、合法的入栈和出栈组合操作,所得的输出序列也一定相同;(F) 19.哈夫曼树是带权外部路径长度最短的树,路径上权值较大的结点离根较近( T ) 20.用一组地址连续的存储单元存放的元素一定构成线性表。(F) 21.堆栈、队列和数组的逻辑结构都是线性表结构。( T ) 22.给定一组权值,可以唯一构造出一棵哈夫曼树。( F) 23.相对于索引文件的基本数据,索引表包含的信息量相对少得多,因此。索引表可以常驻内存。( T) 24.在平均情况下,快速排序法最快,堆积排序法最节省空间。( T) 25.快速排序法是一种稳定性排序法。( F ) 二.选择题: 1.一个栈的输入序列为12345,则下列序列中是栈的输出序列的是(A)。 A.23415 B.54132 C.31245 D.1425 3 2.设循环队列中数组的下标范围是1~n,其头尾指针分别为f和r,则其元素个数为(D)。 A.r-f B.r-f+1 C.(r-f) mod n +1 D.(r-f+n) mod n 3.二叉树在线索化后,仍不能有效求解的问题是(D)。

数据结构老师给的复习要点(严蔚敏版)

第一章 1. 怎样理解“算法+数据结构=程序”这个公式?举例说明。 算法是语句序列解决特定问题的固有程序片段。数据结构是确定数据间的关系。从具体问题抽象出一个合适的数学模型、然后设计一个解决此数学模型的算法,最后编写出程序。寻求数学模型的是指就是数据结构要完成的工作。参看书p1前两段的描述。 2. 数据结构的概念,它包含哪三方面的内容? 数据结构:是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间饿关系和操作的学科。参看书p3 包含三方面的内容:1、数据之间的逻辑关系2、数据在计算机中的存储方式3、在数据上定义的运算的集合。 3. 数据、数据元素、数据项的基本概念。举例说明数据元素和数据项的联系与区别。 数据:描述客观事物的数字、字符以及所有能直接输入到计算机中并被计算机程序处理的符号的集合。 数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑或处理。 数据项:数据项是具有独立含义的最小标识单位,是数据元的一个具体值,是数据记录中最基本的、不可分的有名数据单位。 例1:class A { int c[123]; int i; }; class B { A a; } B b; b.a是数据项,B是数据元素 例2:一本书的数目信息为一个数据元素,而数目信息中每一项(如书名、作者名等)为一个数据项 4. 从逻辑结构来看,数据结构有哪四种基本结构,各自的特点是什么? 1、集合(数据元素之间同属于一个集合,再无其他关系) 2、线性结构(数据元素之间存在一对一的关系) 3、树形结构(数据元素之间一对多的关系) 4、图状结构或网状结构(数据元素之间多对多的关系) 5. 从物理结构来看,数据结构有哪两种基本结构,各自的特点是什么? 1、顺序存储结构 特点:借助元素在存储器中的相应位置来表示数据元素之间的逻辑关系。 2、链式存储结构 特定:借助元素在存储地址的指针表示数据元素之间的逻辑关系。 6. 算法的5个特征,4个评价标准是什么? 特征:有穷性、确定性、可行性、输入、输出。 评价标准:正确性、可读性、健壮性、效率与低存储量需求。 7. 描述时间复杂度。

数据结构讲义严蔚敏版第4章

? 4.2 基本体的表面取点 ? 4.3 平面与立体表面的交线 结束放映 ? 4.1 基本体的三视图 ? 4.4 立体与立体表面的交线 ? 4.5 基本体三维造型

4.1 基本体的三视图 常见的基本几何体 平面基本体曲面基本体

一、画基本体三视图的方法步骤 1 .确定三个视图的位置。选择立体上的一个点或立体的对 称中心线、主要棱线、平面等作为画图参考基准;先画 出它们的三个视图(布图),注意要做到横平竖直。 2.画出反映立体主要形状特征(实形)的视图。 3 .再根据立体的长、宽、高尺寸(相对坐标),依照“长 对正、高平齐、宽相等”的规律,完成另外两个视图。 4 .视图完成后,应擦去作图辅助线。 ?立体是具有三维坐标的实心体,研究的立体投影是研究立体表面的投影。 ?立体是有具体形状和尺寸大小的形体。画三视图时,主要用长、宽、高方向的相对坐标,与投影轴无关,从这里开始不再画出投影轴。

开始画三视图! 在图示位置时,五棱柱的上 下两底面为水平面,在俯视图中反映实形(五边形).后侧棱面是正平面,其余四个侧棱面是铅垂面,它们的水平投影都积聚成直线,与五边形的边重合。 ⑵ 五棱柱的三视图 ⑴ 棱柱的组成 由上下两个底面和若干侧棱面组成。侧棱面与侧棱面的交线叫侧棱线,侧棱线相互平行。 1.棱柱 二、平面基本体 ● a 0 ● a 0" ● a 0' ● (1)布图:选点AO画图参考基准,画出其三个投影图。 2) 画出反映立体主要形状特征的俯视图。 (3) 由“长对正”和立体的高度画出主视图。 4利用“宽相等”和"高平齐”画出左(二求三)。 三视图概念

严蔚敏版数据结构建立学生信息单链表C语言版适合VC++

#include #include #include typedef struct Student/*定义学生类*/ { int num; char name[20]; char sex[2]; int age; float grade; }stu; typedef struct LNode { stu data; struct LNode *next; }LNode,* Linklist; Linklist InitList_L(Linklist L)/*构造一个空的单向链表*/ { L=(Linklist)malloc(sizeof(stu)); if(!L) printf("ERROR\n"); else { L=NULL; printf("OK\n"); return L; } } void DestroyList_L(Linklist L)//销毁单向链表*/ { Linklist p; if(!L) printf("ERROR\n"); else { while(L) { p=L; L=L->next; free(p); } printf("OK\n"); } }

void ClearList_L(Linklist L)/*将L重置为空表*/ { Linklist p; if(!L) printf("ERROR\n"); else { while(L->next) { p=L->next; L->next=p->next; free(p); } printf("OK\n"); } } void ListEmpty_L(Linklist L)/*L为空表返回TRUE,否则返回FALSE*/ { if(!L) printf("ERROR\n"); else { if(!L->next) printf("TRUE\n"); else printf("FLASE\n"); } } int ListLength_L(Linklist L)/*返回L中数据元素个数*/ { int i=0; Linklist p=L; if(!L) return 0; else { while(p) { i++; p=p->next; } return i; } }

严蔚敏数据结构复习整理完整版

1.复杂性分析 对各种操作的时间复杂性的分析。 主要是链表,树,排序等简单一些的分析。 分析的时候,从简单的入手,学会方法。 后续的各种豆可能让你分析时间复杂度。 线性链表(顺序表和单链表) 链表循环链表 双向链表 2.线性结构队列(循环队列) 栈 链表主要操作:找某一个元素,插入一个(在哪个位置增加),删除一个(在哪个位置删除)。栈:查找,插入(位置固定),删除(位置固定) 队列:查找,插入(位置固定),删除(位置固定) 顺序表(可以视为一个数组) 单链表: (删除)

(插入)

倒置: (查找)

循环链表 双向链表 栈: (插入删除查找)

队列 (插入删除查找) 循环队列的实现,并不是像上面的图那样,实现了一个循环的样子。 3.二叉树 基本概念 二叉树是每个节点最多有两个子树的有序树。二叉树常被用于实现二叉查找树和二叉堆。值得注意的是,二叉树不是树的特殊情形。 二叉树是每个结点最多有两个子树的有序树。通常根的子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在出度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。 二叉树不是树的一种特殊情形,尽管其与树有许多相似之处,但树和二叉树有两个主要差别: 1. 树中结点的最大度数没有限制,而二叉树结点的最大度数为2; 2. 树的结点无左、右之分,而二叉树的结点有左、右之分。

二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: (1)空二叉树——如图(a); (2)只有一个根结点的二叉树——如图(b); (3)只有左子树——如图(c); (4)只有右子树——如图(d); (5)完全二叉树——如图(e) 注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形 性质 (1) 在非空二叉树中,第i层的结点总数不超过, i>=1; (2) 深度为h的二叉树最多有2^h-1个结点(h>=1),最少有h个结点; (3) 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1; (4) 具有n个结点的完全二叉树的深度为 (5)有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系: 若I为结点编号则如果I>1,则其父结点的编号为I/2; 如果2*I<=N,则其左儿子(即左子树的根结点)的编号为2*I;若2*I>N,则无左儿子; 如果2*I+1<=N,则其右儿子的结点编号为2*I+1;若2*I+1>N,则无右儿子。 (6)给定N个节点,能构成h(N)种不同的二叉树。h(N)为卡特兰数的第N项。h(n)=C(2*n,n)/(n+1)。 (7)设有i个枝点,I为所有枝点的道路长度总和,J为叶的道路长度总和J=I+2i 存储结构

严蔚敏数据结构讲义(第03章 栈和队列)

第03章栈和队列 3.1栈的基本概念 (一)栈顶top位置的说明: 1.在空栈中,top和base都指向整个栈的起始地址(也就是即将分配的第一个元素的地址); 2.在非空栈中,top始终是指向栈顶元素的下一个元素的地址。 (二)入栈操作(先压后加):Stack[top++]=e (三)出栈操作(先减后弹):e = Stack[--top] (四)栈不存在的判断条件:base==NULL (五)栈空的判断条件:base==top (六)栈满的判断条件:top – base = MaxSize 三、顺序栈的C语言实现 typedef struct{ SElemType *base; //栈底指针 SElemType *top; //栈顶指针 int StackSize; //顺序栈的初始容量(初始分配的能够容纳的元素个数) }SqStack; 四、顺序栈的操作 1.初始化栈——构造一个空栈 Status InitStack(SqStack &S) { S.base = (SElemType*)malloc(Stack_Init_Size*sizeof(SElemType)); if(S.base==NULL) exit(OverFlow); //存储空间分配失败 S.top = S.base; S.StackSize = Stack_Init_Size; } 2.获取栈顶元素——若栈不空,则用e返回S的栈顶元素,并返回OK,否则返回ERROR Status GetTop(SqStack S,SElemType &e) { if(S.top==S.base) return ERROR; //栈空 e = *(top – 1); return OK; } 3.入栈——插入元素e作为新的栈顶元素 Status Push(SqStack &S,SElemType e) { if(S.top – S.base >= S.StackSize) //栈已满,需要追加存储空间 { S.base = (SElemType*)realloc(S.base,(S.StackSize+StackIncrement)*sizeof(SElemType)); if(!S.base) exit(OverFlow); //存储空间分配失败 S.top = S.base + S.StackSize; S.StackSize += StackIncrement; } *S.top++ = e; //*指针运算符和++自加运算符优先级相同,但是其结合方向是自右向左 Return OK; }

相关文档
最新文档