以邻接矩阵存储的图类型构造n个城市连接的最小生成树

以邻接矩阵存储的图类型构造n个城市连接的最小生成树
以邻接矩阵存储的图类型构造n个城市连接的最小生成树

以邻接矩阵存储的图类型构造n个城市连接的最小生成树代码:

#include

#include

#define MaxVextexNum 30 /* 最大顶点数为30 */

#define INFINITY 32767 /* 定义一个权值的最大值*/

typedef struct{

int vexs[MaxVextexNum] ; /* 顶点表*/

int arcs[MaxVextexNum][MaxVextexNum] ; /* 邻接矩阵,即边表*/

int n ,e ; /* 顶点数和边数*/ }MGraph ; /* MGragh是以邻接矩阵存储的图类型*/

typedef struct{

int adjvertex ; /* 某顶点与已构造好的部分生成树的顶点之间权值最小的顶点*/

int lowcost ; /* 某顶点与已构造好的部分生成树的顶点之间的最小权值*/ }ClosEdge[MaxVextexNum] ; /* 用prim算法求最小生成树时的辅助数组*/

void CreatGraph(MGraph *G) /* 建立有向图G的邻接矩阵存储*/

{

int i, j, k, w ;

printf("请输入顶点数和边数n e:") ;

scanf("%d%d" ,&(G->n) ,&(G->e)) ;/* 输入顶点数和边数*/

printf("\n请输顶点字符信息(共%d个):", G->n) ;

for (i=0 ;in ;i++)

{

scanf("%d" ,&(G->vexs[i])) ; /* 输入顶点信息,建立顶点表*/ }

for (i=0 ;in ;i++)

for (j=0 ;jn ;j++)

{

if(i == j)

{

G->arcs[i][j] = 0 ;

}

else

G->arcs[i][j] = INFINITY ;

}/* 初始化邻接矩阵32767为无穷大*/

printf("\n请输入边对应的顶点序号(共%d对),以及权值:\n",G->e) ;

for (k=0 ;ke ;k++)

{

scanf("%d%d%d" ,&i ,&j ,&w) ; /*输入e条边,建立邻接矩阵*/ G->arcs[i][j] = w ;/* 若加入G->edges[j][i]=1,则为无向图的邻接矩阵*/

G->arcs[j][i] = w ;

}

printf("此连邻接矩阵为(32767为无穷大):\n") ;

for(i=0 ;in ;i++)

{

for(j=0 ;jn ;j++)

printf("%8d", G->arcs[i][j]) ;

printf("\n") ;

}

}

void MiniSpanTree_PRIM(MGraph G,int u,ClosEdge closedge)

{/* 从第u个顶点出发构造图G的最小生成树,最小生成树顶点信息存放在数组closedge中*/

int i ,j ,w ,k ,cost = 0 ;

for(i=0 ;i

if(i != u)

{

closedge[i].adjvertex = u ;

closedge[i].lowcost = G.arcs[u][i] ;

}

closedge[u].lowcost = 0 ; /* 初始,U={u} */

for(i=0 ;i

{

w=INFINITY ;

for(j=0 ;j

if(closedge[j].lowcost!=0 && closedge[j].lowcost

{

w=closedge[j].lowcost ;

k=j ;

} /* 求出生成树的下一个顶点k */

closedge[k].lowcost=0 ; /* 第k顶点并入U集*/

for(j=0 ;j

if(G.arcs[k][j]

{

closedge[j].adjvertex=k ;

closedge[j].lowcost=G.arcs[k][j] ;

}

}

printf("\n最小生成树中包括的城市间的道路:\n") ;

for(i=0; i

if (i != u)

{

printf("%d->%d,%d\n",

i ,closedge[i].adjvertex ,G.arcs[i][closedge[i].adjvertex]) ;

cost=cost+G.arcs[i][closedge[i].adjvertex] ;

}

printf("\n最小生成树的代价为:%d\n\n", cost) ;

}

int main()

{

int t ;

MGraph G;

ClosEdge closedge ;

CreatGraph( &G ) ;

printf("请输入源点:") ;

scanf("%d", &t) ;

MiniSpanTree_PRIM(G ,t ,closedge) ;

return 1 ;

}

结果:

总结:

在做课程设计的时候,我们要先搞清楚原理,再考虑如何去实现!

对于城市的最小生成树问题,让我认识到图能够在计算机中存在,首先要捕捉它有哪些具体化、数字化的信息,比如说权值、顶点个数等,这也是说明了想要把生活中的信息转化成到计算机中必须用数字来完整的构成一个信息库,而图的存在,又涉及到了顶点与顶点之间的联系,图分为有向图和无向图,而无向图又是有向图在权值双向相等下的一种特例。

这次课程设计让我认识到对于一段代码,我们不仅要考虑它的可行性,更应该考虑它的算法复杂度,运行效率。做同一件事,一万个人有一万种做法,换而言之,一万个人写一段代码实现

同一个功能可以得到一万段代码。由此,我们可以看出做一件事要精益求精,多加斟酌。

结构施工图的识图[详细]

第3章建筑结构施工图的识读 能力要求:通过本章的学习,熟悉基础平面图、楼层结构平面图的图示方法和要求及平面整体表示方法的制图规则. 3.1概述 房屋的结构施工图是根据房屋建筑中的承重构件进行结构设计后画出的图样.结构设计时要根据建筑要求选择结构类型,并进行合理布置,再通过力学计算确定构件的断面形状、大小、材料及构造等.结构施工图必须与建筑施工图密切配合,它们之间不能产生矛盾. 结构施工图与建筑施工图一样,是施工的依据,主要用于放灰线、挖基槽、基础施工、支承模板、配钢筋、浇灌混凝土等施工过程,也是计算工程量、编制预算和施工进度计划的依据. 1.房屋结构的分类 常见的房屋结构按承重构件的材料可分为: (1) 混合结构—墙用砖砌筑,梁、楼板和屋面都是钢筋混凝土构件. (2) 钢筋混凝土结构—柱、梁、楼板和屋面都是钢筋混凝土构件. (3) 砖木结构—墙用砖砌筑,梁、楼板和屋架都用木料制成. (4)钢结构—承重构件全部为钢材. (5)木结构—承重构件全部为木料. 目前我国建造的住宅、办公楼、学校的教学 楼、集体宿舍等民用建筑,都广泛采用混合结构. 在房屋建筑结构中,结构的作用递给基础,最后由基础传递给地基.如图3一1 所示. 2.结构施工图通常应包括的内容 结构设计总说明(对于较小的房屋一般不必单 独编写),基础平面图及基础详图,楼层结构平面 图,屋面结构平面图,结构构件(例如梁、板、柱、楼 梯、屋架等)详图. 根据建筑各方面的要求,进行结构造型和构件布置,再通过力学计算,决定房屋各承重构件(如图3一z)的材料、形状、大小以及内部构造等等,井将设计结果绘成图样,以指导施工,这种图样称为结构施工图,简称“结施”.

图的邻接矩阵存储结构建立汇总

课程名称: 《数据结构》课程设计课程设计题目:图的邻接矩阵存储结构建立 姓名:XXX 院系:计算机学院 专业:计算机科学技术 年级:11级 学号:XXXXXXXX 指导教师:XXX 2013年9月28日

目录 1 课程设计的目的 (3) 2需求分析 (3) 3 课程设计报告内容 (3) 3.1 概要设计 (3) 3.2 详细设计 (4) 3.3 调试分析 (5) 3.4 用户手册 (5) 3.5 程序清单 (5) 3.6 测试结果 (10) 4 小结 (12) 5 参考文献 (12)

1.课程设计的目的 (1) 熟练使用 C 语言编写程序,解决实际问题; (2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; (3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; (4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 2.需求分析 问题描述:建立图的邻接矩阵存储结构(图的类型可以是有向图或有向网、无向图或无向网,学生可以任选一种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后给出图的DFS,BFS次序。 要求: ①先任意创建一个图; ②图的DFS,BFS的递归和非递归算法的实现。 3.课程设计报告内容 3.1概要设计 1.函数 ①主函数:main( ) ②创建无向图:CreateGraph( )

③深度优先遍历图:DFS( ) ④广度优先遍历图:BFS( ) 3.2详细设计 1.使用邻接矩阵作为图的存储结构,程序中主要用到的抽象数据类型: typedef struct { char vexs[MAX]; //顶点向量 int arcs[MAX][MAX]; //邻接矩阵 int vexnum,arcnum; //图的当前顶点数和弧数}Graph; 2.程序流程图:

房屋构造与识图知识点讲解

1、正投影的基本特性: 一是显实性:当直线图和平面图与投影面平行时直线段正投影反映实在长度 二是积聚性:当直线段或平面图形垂直于投影面时,直线段的正投影积聚成一个点,平面图形积聚成一条线。 三是类似性:当直线段或平面图形倾斜于投影面时,直线段正投影仍为直线但是比真长要短。而平面图形则保持图形的基本特征不变。 2、三面投影及三面之间的特征:三面投影实际上是三个互相垂直相交的平面组成投影体系;正投影面用V表示,即正面;水平投影面用

H表示,即水平面;侧面投影面用W表示,即侧面。三者关系: 正面投影V与水平投影H----长对正 正面投影V与侧面投影W----高平齐 水平投影H与侧面投影W----宽相等 3、直线、面的投影特性 一是:一般位置的线:在任意一个投影面均不反应实长和实际与投影面的夹角 二是:投影面平行线:平行于某一个投影面而倾斜于另外两个投影面的直线。有三种位置,分别是 平行于水平面称为水平线:水平面显示直线的真长,另外两个投影面投影均短于直线真长 平行于正面称为正平线:正面显示直线真长,其余两个投影面投影均短于直线真长 平行于侧面称为侧平线:侧面显示直线真长,。。。。。。 三是:投影面垂直线直线垂直于某一投影面,也有三种位置,分别是 垂直于水平面称为铅垂线:直线在水平面积聚成一个点,在另外两个面均反映直线真长,且垂直对应的投影轴 垂直于正面称为正垂线:直线在正面积聚成一个点,在另外两个投影面均反映直线真长,且垂直对应的投影轴。 垂直于侧面称为侧垂线:直线在侧面积聚成一点其余同上

一般位置平面:平面与三个投影面均倾斜,三个投影面上的投影均为平面的类似型,且均不反映平面对投影面的真实夹角。 投影面平行面:平行于水平面的称为水平面,平行于正面的称为正平面,平行于侧面的称为侧平面 水平面:在水平面上反映平面真形,在其余两个面积聚成一条直线,且分别平行于对应的投影轴。 投影面垂直面:垂直于水平面而倾斜于另外两个面的为水平面垂直面即铅垂面;垂直于正面而倾斜于另外两个面的为正面垂直面即正垂面;垂直于侧面而倾斜于另外两个面的为侧面垂直面即侧垂面。在所垂直的面积聚成线而在另外两个投影面显示类似型。 4、剖面图 形成:用假想剖切平面剖开物体,将观察者与剖切平面的部分移去,将剩余的部分向投影面进行投影,所形成的图形称为剖面图 分类:分为全剖面图、半剖面图、阶梯剖面图、展开剖面图、分层剖面图、局部剖面图 5、断面图 形成:假想用一个剖切平面将物体剖开,只汇出剖切平面剖到的部分的图形,称为断面图 分类:移出断面、中断断面、重合断面 两者之间的关系:剖面图已经包含断面图。用粗实线画出断面额投影,

图的邻接矩阵和邻接表相互转换

图的邻接矩阵和邻接表相互转换 图的邻接矩阵存储方法具有如下几个特征:1)无向图的邻接矩阵一定是一个对称矩阵。 2)对于无向图的邻接矩阵的第i 行非零元素的个数正好是第i 个顶点的度()i v TD 。3)对于有向图,邻接矩阵的第i 行非零元素的个数正好是第i 个顶点的出度()i v OD (或入度 ()i v ID ) 。4)用邻接矩阵方法存储图,很容易确定图中任意两个顶点之间是否有边相连;但是,要确定图中有多少条边,则必须按行、按列对每个元素进行检测,所发费得时间代价大。 邻接表是图的一种顺序存储与链式存储相结合的存储方法。若无向图中有n 个顶点、e 条边,则它的邻接表需n 个头结点和2e 个表结点。显然,在边稀疏的情况下,用邻接表表示图比邻接矩阵存储空间。在无向图的邻接表中,顶点i v 的度恰好是第i 个链表中的结点数,而在有向图中,第i 个链表中结点个数是顶点i v 的出度。 在建立邻接表或邻逆接表时,若输入的顶点信息即为顶点的编号,则建立临接表的时间复杂度是)(e n O +;否则,需要通过查找才能得到顶点在图中位置,则时间复杂度为)*(e n O 。在邻接表上容易找到任意一顶点的第一个邻接点和下一个邻接点,但要判断任意两个顶点之间是否有边或弧,则需要搜索第i 个或第j 个链表,因此,不及邻接矩阵方便。 邻接矩阵和邻接表相互转换程序代码如下: #include #define MAX 20 //图的邻接表存储表示 typedef struct ArcNode{ int adjvex; //弧的邻接定点 char info; //邻接点值 struct ArcNode *nextarc; //指向下一条弧的指针 }ArcNode; typedef struct Vnode{ //节点信息 char data; ArcNode *link; }Vnode,AdjList[MAX]; typedef struct{ AdjList vertices; int vexnum; //节点数 int arcnum; //边数

用邻接矩阵表示法创建有向图(数据结构)

#include #include #include #define MAX_VERTEX_NUM 20 //定义最多顶点个数 #define INFINITY32768 //定义无穷大 //描述图的类型,用枚举型类型来说明 typedef enum{DG,DN,UDG,UDN}GraphKind; //定义顶点数据类型 typedef char V ertexData; //定义邻接矩阵中元素值(即边信息)的数据类型 typedef int ArcNode; //定义图的邻接矩阵类型:一个顶点信息的一维数组,一个邻接矩阵、当前图中包含的顶点数、边数以及图类型(有向图、有向网、无向图、无向网) typedef struct { V ertexData vertex[MAX_VERTEX_NUM]; ArcNode arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; int vertexnum,arcnum; GraphKind kind; } AdjMatrix;//图的邻接矩阵表示类型 int LocateV ertex(AdjMatrix *G,V ertexData v) //求顶点位置函数 { int j=-1,k; for(k=0;kvertexnum;k++) { if(G->vertex[k]==v) { return k; } } return j; } int CreateDN(AdjMatrix *G) //创建一个又向网 { int i,j,k,weight; V ertexData v1,v2; printf("输入图的顶点数和弧数,以逗号分隔\n"); //输入图的顶点数和弧数 scanf("%d,%d",&G->vertexnum,&G->arcnum); for(i=0;ivertexnum;i++) //初始化邻接矩阵(主对角线元素全为零,其余元素为无穷大) {

数据结构与算法-图的邻接矩阵

实验报告实验日期:数据结构与算法课程: 图的邻接矩阵实验名称: 一、实验目的掌握图的邻接矩阵 二、实验内容必做部分 、给出图的邻接矩阵存储结构的类型定义。1 -1。v,返回其在vexs数组中的下标,否则返回2、实现LocateVex(G,v)操作函数:若找到顶点。、实现算法7.2(构造无向网)3&G) Status CreateUDN(MGraph 设计并实现无向网的输出算法,要求能显示顶点以及顶点之间的邻接关系(方式自定)4、 并进行输出。要求给出至少两组测试数据。在主函数中调用CreateUDN创建一个无向网,5、 选做部分 类型)编写下述操作函数:基于图的邻接矩阵存储结构(即MGraph若找不到这样返回该邻接点在顶点数组中的下标;1个邻接点,1、求下标为v的顶点的第-1。的邻接点,返回int FirstAdjVex(MGraph G,int v) 的顶点的下一个邻接点,返回该邻接点的下标;若w求下标为v的顶点相对于下标为2、找不到这样的邻接点,返回-1。 int NextAdjVex(MGraph G,int v,int w) 在主函数调用上述函数,给出测试结果。 三、实验步骤 必做部分 给出图的邻接矩阵存储结构的类型定义。、 1.

2、实现LocateVex(G,v)操作函数:若找到顶点v,返回其在vexs数组中的下标,否则返回-1。 3、实现算法7.2(构造无向网)。 &G) CreateUDN(MGraph Status

设计并实现无向网的输出算法,要求能显示顶点以及顶点之间的邻接关系(方式自定)、

4. 要求给出至少两组测试数据。并进行输出。、在主函数中调用CreateUDN创建一个无向网,5

数据结构课程设计-图的邻接矩阵

数据结构 课程设计报告 设计题目:图的邻接矩阵存储结构 院系计算机学院 年级x 级 学生xxxx 学号xxxxxxxxxx 指导教师xxxxxxxxx 起止时间10-6/10-10 2013年10月10日

目录 1 需求分析 (4) 2 概要设计 (4) 2.1 ADT描述 (4) 2.2程序模块结构 (5) 2.3各功能模块 (6) 3详细设计 (7) 3.1类的定义 (7) 3.2 初始化 (8) 3.3 图的构建操作 (8) 3.4 输出操作 (9) 3.5 get操作 (9) 3.6 插入操作 (10) 3.7 删除操作 (100) 3.8 求顶点的度操作 (111) 3.9 深度遍历作 (11) 3.10 判断连通操作 (12) 3.11 主函数 (13) 4 调试分析 (16) 4.1调试问题 (16) 4.2 算法时间复杂度 (16) 5用户手册 (16) 5.1主界面 (16) 5.2 创建图 (17) 5.3插入节点 (17) 5.4 深度优先遍历 (17) 5.5 求各顶点的度 (18) 5.6 输出图 (18) 5.7 判断是否连通 (19) 5.8 求边的权值 (19) 5.9 插入边 (19) 5.10 删除边 (20) 结论 (20) 参考文献 (20)

摘要 随着计算机的普及,涉及计算机相关的科目也越来越普遍,其中数据结构是计算机专业重要的专业基础课程与核心课程之一,为适应我国计算机科学技术的发展和应用,学好数据结构非常必要,然而要掌握数据结构的知识非常难,所以对“数据结构”的课程设计比不可少。本说明书是对“无向图的邻接矩阵存储结构”课程设计的说明。 首先是对需求分析的简要阐述,说明系统要完成的任务和相应的分析,并给出测试数据。其次是概要设计,说明所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次关系,以及ADT描述。然后是详细设计,描述实现概要设计中定义的基本功操作和所有数据类型,以及函数的功能及代码实现。再次是对系统的调试分析说明,以及遇到的问题和解决问题的方法。然后是用户使用说明书的阐述,然后是测试的数据和结果的分析,最后是对本次课程设计的结论。 关键词:网络化;计算机;对策;图;储存。

实现图的邻接矩阵和邻接表存储

实现图的邻接矩阵和邻接表存储 1.需求分析 对于下图所示的有向图G,编写一个程序完成如下功能: 1.建立G的邻接矩阵并输出之 2.由G的邻接矩阵产生邻接表并输出之 3.再由2的邻接表产生对应的邻接矩阵并输出之 2.系统设计 1.图的抽象数据类型定义: ADT Graph{ 数据对象V:V是具有相同特性的数据元素的集合,称为顶点集 数据关系R: R={VR} VR={|v,w∈V且P(v,w),表示从v到w的弧, 谓词P(v,w)定义了弧的意义或信息} 基本操作P: CreatGraph(&G,V,VR) 初始条件:V是图的顶点集,VR是图中弧的集合 操作结果:按V和VR的定义构造图G DestroyGraph(&G) 初始条件:图G存在 操作结果:销毁图G InsertVex(&G,v) 初始条件:图G存在,v和图中顶点有相同特征 操作结果:在图G中增添新顶点v …… InsertArc(&G,v,w) 初始条件:图G存在,v和w是G中两个顶点 操作结果:在G中增添弧,若G是无向的则还增添对称弧 …… DFSTraverse(G,Visit()) 初始条件:图G存在,Visit是顶点的应用函数 操作结果:对图进行深度优先遍历,在遍历过程中对每个顶点调用函数Visit一次且仅一次。

一旦Visit()失败,则操作失败 BFSTraverse(G,Visit()) 初始条件:图G存在,Visit是顶点的应用函数 操作结果:对图进行广度优先遍历,在遍历过程中对每个顶点调用函数Visit一次且仅一次。一旦Visit()失败,则操作失败 }ADT Graph 2.主程序的流程: 调用CreateMG函数创建邻接矩阵M; 调用PrintMatrix函数输出邻接矩阵M 调用CreateMGtoDN函数,由邻接矩阵M创建邻接表G 调用PrintDN函数输出邻接表G 调用CreateDNtoMG函数,由邻接表M创建邻接矩阵N 调用PrintMatrix函数输出邻接矩阵N 3.函数关系调用图: 3.调试分析 (1)在MGraph的定义中有枚举类型 typedef enum{DG,DN,UDG,UDN}GraphKind;//{有向图,有向网,无向图,无向网} 赋值语句G.kind(int)=M.kind(GraphKind);是正确的,而反过来M.kind=G.kind则是错误的,要加上那个强制转换M.kind=GraphKind(G.kind);枚举类型enum{DG,DN,UDG,UDN} 会自动赋值DG=0;DN=1,UDG=2,UDN=3;可以自动从GraphKind类型转换到int型,但不会自动从int型转换到GraphKind类型

《建筑识图与房屋构造》考试复习资料(已做集中整理)

预算员《建筑识图与房屋构造》复习资料(1) 识图与构造练习题(1): 一、是非题: 1、工程图中的尺寸由尺寸线、尺寸界线、尺寸起止符号、尺寸数字四部分组成。 对 2、工程图上标注的尺寸数字,是物体的实际尺寸,它与绘图的比例有关。 错 正确:与绘图的比例无关。 3、图样的比例,应为图形与实物相对应的线性尺寸之比。 对 4、工程图上的尺寸,除标高及总平面图以米为单位外,其余都以毫米为单位。 对 5、建筑工程的图纸大多是应用正投影的原理和方法绘制的。 对 6、形体在三面投影图上必定符合长对正、高平齐、宽相符的投影规律。 对 7、形体与投影面倾斜,投射线垂直于投影面得到的轴测投影图称为轴测斜投影图。 错 正确:称为轴测正投影图。 8、正等测的轴间角均为120度;轴向变形系数均为0。82,在作图时都取简化系数1。 对 9、用两个或两个以上相交的剖切面剖切形体,所得剖面图叫阶梯剖面图。 错 正确:展开剖面图。 10、断面图直接画在构件假想的断开处,称为重合断面。 错 正确:中断断面。 11、民用建筑按建筑结构承重方式可分为砖木结构、混合结构、钢砼结构、钢结构等。 错 正确:按建筑承重结构的材料分为 12、用柱与梁组成框架结构承重受房屋的全部荷载称为框架结构。 对 13、根据统一的标准,设计通用的构件、配件、单元和房屋称为建筑的标准设计。对 14、标准尺寸单位是最基本的数值叫基本模数,用M表示。 对 15、定位线是确定主要结构或构件的位置及构造尺寸的基线。 错 正确:标注尺寸

16、一般情况下,构造尺寸加上缝隙的大小等于标志尺寸,所以标志尺寸一定大于构造尺寸。 错。 正确:不一定。 17、地基每平方米所能承受的最大压力,叫地基容许承载力。 对 18、上部荷载越大,要求基础的底面积就越大;或者说,地基容许承载力越小,所需要的基底面积就越大。 对 19、凡受刚性角限制的基础称为刚性基础,钢筋砼基础属于刚性基础。 错 正确:钢筋砼基础属于柔性基础。 20、用钢筋砼建造的基础,抗弯能力很大,叫做柔性基础。 对 21、基础的埋置深度是指室外地面到基础底面的距离。 错 正确:设计 22、地下室的防潮与防水是一个很重要的构造措施问题。 对 23、圈梁的数量与房屋的高度、层数、地基状况和地震烈度有关。 对 24、附加圈梁与圈梁的搭接长度不应小于其垂直间距的2倍且不得小于1M。 对 25、墙身防潮很重要,设置墙身防潮层可提高建筑物的耐久性。 对 26、隔墙与内墙相同,它是不承重的,对房屋内部只起分割房间或空间的作用。错 正确:内墙有时是起承重作用的 27、为了保护接近地面的墙身免雨水浸蚀,以防受潮后冬季冻融使墙身遭到破坏,同时也防止各种机械性的破坏,常做的构造措施是设置外墙裙。 错 正确:勒脚 28、为了增强房屋的整体刚度和抗震能力,在楼板与楼板之间或楼板与墙之间,应用钢筋加以锚固。 对 29、现浇无梁楼板的跨度较大,一般板厚不小于80MM。 错 正确:120MM 30、地面是底层地面和楼层地面的总称。 对

图采用邻接矩阵存储结构

图采用邻接矩阵存储结构 #define TRUE 1 #define FALSE 0 #define MAXV 20 typedef int V ertexType; //用顶点编号表示顶点 typedef struct { // 图的定义 int edges[MAXV][MAXV] ; // 边数组 int n, e; //顶点数,弧数 V ertexType vexs[MAXV]; // 顶点信息 } MGraph; 1、创建具有n个顶点e条边的无向图 void CreateUDG(MGraph &G,int n,int e) { int i,j,u,v; G.n=n;G.e=e; /* printf("请输入%d个顶点的编号:\n",n); for(i=0;i

void CreateDG(MGraph &G,int n,int e) { int i,j,u,v; G.n=n;G.e=e; /* printf("请输入%d个顶点的编号:\n",n); for(i=0;i

邻接矩阵创建有向网的实现

韩山师范学院 实验题目: 邻接矩阵创建有向网算法实现 班级:2015级软工班作者:黄俊聪 #include using namespace std; #define MaxInt 32767 //表示极大值,即∞ #define MVNum 100 //最大顶点数 #define OK 1 #define ERROR 0; typedef char VerTexType;//假设顶点的数据类型为字符型 typedefintArcType;//假设边的权值类型为整型 typedefint Status; typedefstruct { VerTexTypevexs[MVNum];//顶点表 ArcType arcs[MVNum][MVNum];//邻接矩阵 intvexnum,arcnum;//图的当前点数和边数 }AMGraph; Status LocateVex(AMGraphG,char v) {

for(i=0; i>G.vexnum>>G.arcnum;//输入总定点数,总边数 cout<<"次输入点的信息:"<>G.vexs[i]; for(int i=0;i>v1>>v2>>w;//输入一条边依附的顶点及权值 i=LocateVex(G,v1); j=LocateVex(G,v2);//确定v1和v2在G中的位置,即顶点数组的下表 G.arcs[i][j]=w;//边的权值置为w } return OK; } void PrintMatrix(AMGraph&G)//输出邻接矩阵 { inti,j; printf("邻接矩阵为:\n"); for(i=0;i

建筑构造与识图实训总结例文

建筑构造与识图实训总结例文 篇一:建筑构造与识图课程设计实训心得 在大二的第十六周我们又迎来了这次珍贵却又极富挑战的建筑构造与识图课程设计实训,时值严冬,又临近期末,对同学们身心都是极大的考验.时间转瞬即逝,五天的实训而我也终于克服种种困难完成了老师布置的任务,这周我不单画图技巧的掌握有所提高,在人生道路上也有所领悟. 正式实训前.当老师提前透露本次实训将要画八幅图的时候,我心里顿时一紧,心想去年话六幅图都够我喝一壶了,这次居然八幅图,在还没开始实训,我就已经有了畏难的情绪在里面了,但是我努力保持一颗平常心,心想传到桥头自然直.这因为这种心里,我没有放弃,同时也导致落后别人一步.(当正式画图那天,大多数同学已经提前画好一幅图了,而我才刚刚开始) 大一画图的时候,由于准备不足,导致画图速度奇慢,这次实训我准备十分充分,最基本的绘图工具和仪器都准备到位了,如:绘图板、丁字尺、三角板、圆规、铅笔等等 实训开始前,刘老师给我们讲了关于此次画图的具体要求以及一些需要注意的地方,比如:第一幅图需要打满格子、字体数字的大小、比例问题、最后上交作业如何订制八幅图等. 实训的主要类容是画某楼建筑施工图,包括设计说明工程做法门窗表、一层平面图、二层至五层平面图、正立面、

背立面、1-1剖面图檐口详图、左侧立面图、屋顶造型平面立面图及屋顶造型详图,一共八幅图. 当我看到第一幅图,又听刘老师说要打满格子才能写字.我第一感觉 是我快要崩溃了,但是又不得不去画.当画完第一幅图的时候,我又是另一种感觉了,我是怎么完成这幅画的连自己都疑惑,自己是怎么坚持过来的,在画之前看似很繁琐,让自己快泄气的难题就这样被自己解决了.这个时候我心里就隐隐有种想法,这就是后来我领悟的一个道理,不管困难再大,只要一步一步去完成它,就会成功.换个说话就是,坚持才是战胜困难的捷径. 在整个画图过程中,我始终在跟自己战斗着,每当我快要放弃、懈怠的时候,我总会对自己说要坚持,人生总有那么多坎,不是辉煌,便是消亡.调整好心态之后,我会适当休息让身体也放松稍许,画图不单是个细心、耐心活,也是体力活,每次画完一天,都是腰酸背痛的.所以在上课期间,我除了画图尽量不干与画图无关的事情,抓紧每分每秒.下课期间,好好调整身体状况,保证自己画图的热情,避免因为长时间画图,而出现厌烦情绪. 在画图过程中,从开始的不熟悉、不知道从何下手到后来的得心应手,这是一个质的转变.这或许就是孰能生巧的缘故吧. 隔绝身边的杂音,将自己置身于一个空旷的环境,自己

邻接矩阵表示图深度广度优先遍历

*问题描述: 建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选两种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。 1、邻接矩阵表示法: 设G=(V,E)是一个图,其中V={V1,V2,V3…,Vn}。G的邻接矩阵是一个他有下述性质的n阶方阵: 1,若(Vi,Vj)∈E 或∈E; A[i,j]={ 0,反之 图5-2中有向图G1和无向图G2的邻接矩阵分别为M1和M2: M1=┌0 1 0 1 ┐ │ 1 0 1 0 │ │ 1 0 0 1 │ └0 0 0 0 ┘ M2=┌0 1 1 1 ┐ │ 1 0 1 0 │ │ 1 1 0 1 │ └ 1 0 1 0 ┘ 注意无向图的邻接是一个对称矩阵,例如M2。 用邻接矩阵表示法来表示一个具有n个顶点的图时,除了用邻接矩阵中的n*n个元素存储顶点间相邻关系外,往往还需要另设一个向量存储n个顶点的信息。因此其类型定义如下: VertexType vertex[MAX_VERTEX_NUM]; // 顶点向量 AdjMatrix arcs; // 邻接矩阵 int vexnum, arcnum; // 图的当前顶点数和弧(边)数 GraphKind kind; // 图的种类标志

若图中每个顶点只含一个编号i(1≤i≤vnum),则只需一个二维数组表示图的邻接矩阵。此时存储结构可简单说明如下: type adjmatrix=array[1..vnum,1..vnum]of adj; 利用邻接矩阵很容易判定任意两个顶点之间是否有边(或弧)相联,并容易求得各个顶点的度。 对于无向图,顶点Vi的度是邻接矩阵中第i行元素之和,即 n n D(Vi)=∑A[i,j](或∑A[i,j]) j=1 i=1 对于有向图,顶点Vi的出度OD(Vi)为邻接矩阵第i行元素之和,顶点Vi 的入度ID(Vi)为第i列元素之和。即 n n OD(Vi)=∑A[i,j],OD(Vi)=∑A[j,i]) j=1j=1 用邻接矩阵也可以表示带权图,只要令 Wij, 若或(Vi,Vj) A[i,j]={ ∞, 否则。 其中Wij为或(Vi,Vj)上的权值。相应地,网的邻接矩阵表示的类型定义应作如下的修改:adj:weightype ; {weightype为权类型} 图5-6列出一个网和它的邻接矩阵。 ┌∞31∞∞┐ │∞∞51∞│ │∞∞∞∞∞│ │∞∞6∞∞│ └∞322∞┘ (a)网(b)邻接矩阵 图5-6 网及其邻接矩阵 对无向图或无向网络,由于其邻接矩阵是对称的,故可采用压缩存贮的方法,

邻接矩阵表示的带权有向图

实习报告——“邻接矩阵表示的带权有向图”演示程序 (一)、程序的功能和特点 主要实现的功能:1.使用邻接矩阵表示带权有向图; 2.查找指定顶点序号; 3.判断图是否为空; 4.判断图是否满; 5.取得顶点数、边数、一条边的权值; 6.插入一个顶点、边; 7.删除一个顶点、边; (二)、程序的算法设计 “邻接矩阵的表示”算法: 1.【逻辑结构与存储结构设计】 逻辑结构:非线性结构——网状结构 存储结构:内存中连续的存储结构,邻接矩阵 2.【基本操作设计】 按指定输入,生成图并打印该图 删除一个顶点并打印 删除一条边并打印 3. 【算法设计】 插入一个顶点的算法: 首先判断该图是否已满,若已满:插入失败; 否则进行插入:1.顶点表增加一个元素 2.邻接矩阵增加一行一列 删除一个顶点的算法: A F E D C B

判断要删除顶点的存在性,若不存在:出错; 否则:1.修改顶点表,即在顶点数组中删除 该点; 2.修改邻接矩阵,即需要统计与该顶 点相关联的边,并将这些边也删除4.【高级语言代码】 public class Graph { static int MaxEdges=50; static int MaxVertices=10; static int MaxValue=9999;//无穷大 //存放顶点的数组 private char VerticesList[]=new char[MaxVertices]; //邻接矩阵(存放两个顶点的权值) private int Edge[][]=new int[MaxVertices][MaxVertices]; private int CurrentEdges;//现有边数 private int CurrentVertices;//现有顶点数 //构造函数:建立空的邻接矩阵 public Graph(){ for(int i=0;i

建立图的邻接矩阵或邻接表存储并在此基础知识上实现图的深度和广度优先遍历

#include "stdafx.h" #include "conio.h" #include "stdio.h" #include "stdlib.h" typedef enum {FALSE, TRUE} BOOLEAN; #define OVERFLOW -1 #define OK 1 #define ERROR 0 #define INFINITY INT_MAX /* 最大值∞ */ /* 根据图的权值类型,分别定义为最大整数或实数 */ #define MAX_VERTEX_NUM 20 /* 最大顶点数目 */ typedef enum {DG, DN, UDG,UDN} GraphKind ; /* {有向图,有向网,无向图,无向网} */ BOOLEAN Visited[MAX_VERTEX_NUM]; BOOLEAN visited[MAX_VERTEX_NUM]; #define VEX_NUM 20 #define MAXSIZE 50 typedef char Vextype; typedef int ElemType; typedef int Status; ////////////////////////////// 邻接矩阵结构定义typedef struct { Vextype vexs[VEX_NUM]; int adj[VEX_NUM][VEX_NUM]; /*邻接矩阵*/ int n,e; /*顶点数和边数*/ }Mgraph;

////////////////////////////// 邻接表结构定义 typedef struct node { /*边结点*/ int adjvex; /*邻接点域*/ struct node * nextarc; /*指向下一个边结点的指针域*/ } EdgeNode; typedef struct vnode { //顶点结构,2个域,结点信息和第一个邻接点Vextype vertex; EdgeNode *firstedge; }VertexNode; typedef struct { //图结构 VertexNode adjlist[MAXSIZE]; int n,e; } ALGraph; //// int FirstAdjVex(ALGraph G,int v) {//在图G中寻找第v个顶点的第一个邻接顶点 if(!G.adjlist[v].firstedge) return -1; else return(G.adjlist[v].firstedge->adjvex); } int NextAdjVex(ALGraph G,int v,int w) {//在图G中寻找第v个顶点的相对于w的下一个邻接顶点 EdgeNode *p; int vi; p=G.adjlist[v].firstedge; if(!p) return -1;

《房屋构造与识图》课程标准

房屋构造与识图课程标准课程编码:022115 课程类别:专业基础课 适用专业:工程技术授课单位:建筑工程系 学时:108 学分:2.0 第一部分课程性质与作用 (一)课程的性质 本课程是建筑工程技术专业的专业核心课程,是校企合作开发的基于土木工程施工、工程概预算工作过程的课程。(二)课程的作用 本课程针对高职院校学生的特点,依据教育部对高职高专人才培养目标、培养规格、培养模式及与之相适应的知识技能要求,本着学生“边学、边做、边互动”的原则,遵循学生职业能力培养的基本规律,在专业人才培养过程中的有着相当高的地位及作用。 本课程是学生在学习完一个学期的“建筑制图课程”后进行的,为后续施工技术及工程概预算等课程打下基础。第二部分课程设计思路 (一)课程基本理念 《房屋构造与识图》课程遵循高职教育规律,以工作过程为导向选取学习内容,课程目标是培养学生具备实际施工工作过程中的综合职业能力;坚持开放性设计原则,吸收行业专家参与,建立基于建筑工程施工工作过程,以“工作任务”为载体的“项目化”课程结构;课程教学实施教、学、做一体,通过仿真工作环境和实训材料锻炼学生的实践工作

能力。 (二)课程设计思路 《房屋构造与识图》课程具有综合性强、政策性强、特色性强、实践性强等特点,运用基于工作过程的课程开发理念,按照工作过程来分析工作过程要素,按照工作过程要素与学习过程要素相对应原则,将工作过程中的主观要素转化为学习过程中的内容要素,将工作过程中的客观要素转化成学习过程中的情境要素,重构了本门课程内容。最后的综合实训以模拟施工企业一个月的施工任务为驱动,以工程施工实际工作流程为主线,采用真实的施工资料,指导学生完成工作,培养学生的专业能力与职业素养。 第三部分课程目标 (一)知识目标 掌握《房屋建筑制图统一标准》和《建筑制图标准》的基本规定,理解正投影法的基本原理及其在建筑施工图与结构施工图中的应用,掌握民用建筑构造,知道工业建筑的基本构造,掌握施工图与结构施工图的作用、内容及其识读方法和步骤。 (二)能力目标 能比较熟练地查阅有关规范、图集等资料获取信息,能熟练识读民用建筑建筑施工图与结构施工图、领会设计意图,会识读工业建筑建筑施工图,会绘制一般工业与民用建筑竣工图,能比较熟练的利用点、线、面的正投影规律分析建筑物及其组成部分的形状及尺寸,能比较熟练地利用建筑

数据结构实验报告无向图邻接矩阵存储结构

数学与计算机学院 课程设计说明书 课程名称: 数据结构与算法课程设计 课程代码: 6014389 题目: 无向图的邻接矩阵存储结构 年级/专业/班: 2018级软件4班 学生姓名: 吴超 学号: 312018********* 开始时间: 2018年12月9日 完成时间: 2018年12月30日 课程设计成绩: 指导教师签名:年月日 数据结构课程设计任务书

学院名称:数学与计算机学院课程代码:__6014389______ 专业:软件工程年级: 2018 一、设计题目 无向图的邻接矩阵存储结构 二、主要内容 图是无向带权图,对下列各题,要求写一算法实现。 1)能从键盘上输入各条边和边上的权值; 2)构造图的邻接矩阵和顶点集。 3)输出图的各顶点和邻接矩阵 4)插入一条边 5)删除一条边 6)求出各顶点的度 7)判断该图是否是连通图,若是,返回1;否则返回0. 8)使用深度遍历算法,输出遍历序列。 三、具体要求及应提交的材料 用C/C++语言编程实现上述内容,对每个问题写出一个算法实现,并按数学与计算机学院对课程设计说明书规范化要求,写出课程设计说明书,并提交下列材料: 1>课程设计说明书打印稿一份 2>课程设计说明书电子稿一份; 3>源程序电子文档一份。 四、主要技术路线提示 用一维数组存放图的顶点信息,二维数组存放各边信息。 五、进度安排 按教案计划规定,数据结构课程设计为2周,其进度及时间大致分配如下:

[1] 严蔚敏,吴伟民.数据结构.清华大学出版社出版。 [2] 严蔚敏,吴伟民. 数据结构题集(C语言版> .清华大学出版社.2003年5月。 [3]唐策善,李龙澎.数据结构(作C语言描述> .高等教育出版社.2001年9月 [4] 朱战立.数据结构(C++语言描述><第二版本).高等出版社出版.2004年4月 [5]胡学钢.数据结构(C语言版> .高等教育出版社.2004年8月 指导教师签名日期年月日 系主任审核日期年月日 目录

图的邻接矩阵的建立与输出

#include #include #include #define MAX_VERTEX_NUM 20 typedef int Arc_Type; typedef char VerTex_Type[5]; typedef enum { DG, DN, UDG, UDN }Graph_Kind; typedef struct ArcCell { Arc_Type adj; //Info_Type *info; }AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct { V erTex_Type vexs[MAX_VERTEX_NUM]; AdjMatrix arcs; int vertex_num; int arc_num; Graph_Kind kind; }MGraph; void Init_MGraph( MGraph &G ) { printf("输入图的定点数:"); scanf("%d", &G.vertex_num ); printf("输入图的边数:"); scanf("%d", &G.arc_num ); printf("输入图的类型(有向图:1 无向图:2 ):"); scanf("%d", &G.kind); int i, j; printf("输入节点向量(定点之间用空格隔开):"); for( i=0; i

房屋结构构造与识图

5.方茴说:“那时候我们不说爱,爱是多么遥远、多么沉重的字眼啊。我们只说喜欢,就算喜欢也是偷偷摸摸的。” 6.方茴说:“我觉得之所以说相见不如怀念,是因为相见只能让人在现实面前无奈地哀悼伤痛,而怀念却可以把已经注定的谎言变成童话。” 7.在村头有一截巨大的雷击木,直径十几米,此时主干上唯一的柳条已经在朝霞中掩去了莹光,变得普普通通了。 8.这些孩子都很活泼与好动,即便吃饭时也都不太老实,不少人抱着陶碗从自家出来,凑到了一起。 9.石村周围草木丰茂,猛兽众多,可守着大山,村人的食物相对来说却算不上丰盛,只是一些粗麦饼、野果以及孩子们碗中少量的肉食。 《房屋结构构造与识图》培训考试题目 1、民用建筑房屋一般是由哪几部分组成的,并简要回答墙体作用。 2、建筑物按结构材料可分为哪几类,并针对每一类指出一种适于建造的房屋类型。 3、简述刚性防水屋面的优、缺点。 4、建筑施工图主要包括哪些内容? 5、建筑物按承重受力方式分为几类? 6、简述基础的构造类型。 7、简述楼面和地面的构造层次。 8、什么是沉降缝? 9、简述房屋受力后力是根据怎样的顺序传递的。 1、供人们生活、文化娱乐、医疗、商业、旅游、办公、居住的房屋均属()。 A、住宅建筑 B、公共建筑 C、民用建筑 D、工业建筑 2、高层建筑一般指()层以上。 A、10层 B、8层 C、40层 D、3层 3、按耐久性确定为一级的建筑物的耐久年限为()。 A、100年以上 B、50年以上 C、40-50年 D、15-40年 4、常年静水位和丰水期最高水位都低于地下室地坪时,地下室可做()处 理。 1.“噢,居然有土龙肉,给我一块!” 2.老人们都笑了,自巨石上起身。而那些身材健壮如虎的成年人则是一阵笑骂,数落着自己的孩子,拎着骨棒与阔剑也快步向自家中走去。

相关文档
最新文档