图的应用的实验报告

图的应用的实验报告
图的应用的实验报告

实验六图的应用及其实现

一、实验目的

1.进一步功固图常用的存储结构。

2.熟练掌握在图的邻接表实现图的基本操作。

3.理解掌握AOV网、AOE网在邻接表上的实现以及解决简单的应用问题。

二、实验内容

[题目一]:从键盘上输入AOV网的顶点和有向边的信息,建立其邻接表存储结构,然后对该图拓扑排序,并输出拓扑序列. 试设计程序实现上述AOV网的类型定义和基本操作,完成上述功能。

测试数据:教材图7.28

[题目二]:从键盘上输入AOE网的顶点和有向边的信息,建立其邻接表存储结构,输出其关键路径和关键路径长度。试设计程序实现上述AOE网类型定义和基本操作,完成上述功能。

测试数据:教材图7.29

三、实验步骤

㈠、数据结构与核心算法的设计描述

基本数据结构:

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

typedef int Status; /* Status 是函数的类型,其值是函数结果状态代码,如OK 等*/

#define INFINITY INT_MAX //定义无穷大∞

#define MAX_VERTEX_NUM 20

typedef int V ertexType;

typedef int InfoType;

typedef struct ArcNode // 表结点定义

{

InfoType info;

int adjvex; //邻接点域,存放与V i邻接的点在表头数组中的位置ArcNode *nextarc; //链域,指示依附于vi的下一条边或弧的结点,

}ArcNode;

typedef struct VNode //表头结点

{

int data; //存放顶点信息

struct ArcNode *firstarc; //指示第一个邻接点

}VNode,AdjList[MAX_VERTEX_NUM];

typedef struct { //图的结构定义

int vexnum, arcnum;

int Isquan;//是否含有权值

} MGraph;

typedef struct

{

int *top;

int *base;

int stacksize;

}Sqstack;

typedef int ElemType;

Status Initstack(Sqstack &s)

{

s.base=(int*)malloc(sizeof(int)*25);

if (!s.base)

return ERROR;

s.top=s.base;

s.stacksize=25;

return OK;

}

int indegree[MAX_VERTEX_NUM];

int ve[MAX_VERTEX_NUM];//e各顶点的最早发生时间

int vl[MAX_VERTEX_NUM];//各顶点发生的最晚发生时间

调用的函数

Status Initstack(Sqstack &s)

Status Pop(Sqstack &s,int &e)

//若栈不空,则删除S的栈顶元素,

//用e返回其值,并返回OK;否则返回ERROR

int Push(Sqstack &s,int &e)

int StackEmpty(Sqstack s) //若栈为空栈,则返回TRUE,否则返回FLASE

Status CreateGraph(MGraph &G)

void Display(MGraph &G) /* 输出图G的信息*/

//个顶点的入度数放入indegree[i] int LocateVex(MGraph G,VertexType u) /* 初始条件: 图G 存在,u 和G 中顶点有相同特征*/

/* 操作结果: 若G 中存在顶点u,则返回该顶点在图中位置;否则返回-1 */

Status ToopologicalSort (MGraph g)//对图进行拓扑排序,并输出拓扑排序的结果 Status ToopologicalOrder (MGraph g,Sqstack &T)//拓扑序列 Status CriticalPath(MGraph g,Sqstack T)//关键路径

㈡、函数调用及主函数设计( 可用函数的调用关系图说明) void main()

{ MGraph g; Sqstack T;

cout<<"创建图:\n"; CreateGraph(g);

cout<<"输出图的信息:\n"; Display(g);

cout<<"拓扑排序:\n"; ToopologicalSort(g); cout<<"求关键历经:\n"; ToopologicalOrder(g,T); CriticalPath(g,T);

}

㈢ 程序调试及运行结果分析

(1)在创建图的过程中需要考虑输入的方便,这就需要标记根据用户选择是否需要输入权值,选择不需要权值时就不会有关权值信息的操作。所以这就在图的结构体中加ISquan 标记(0表示无权值,其他表示有权值)

(2)FindIndegree ()函数调用过程就是一个对邻接表遍历的过程,在遍历过程中需要将弧指向的结点进行入度数组的标记。便定义了一个Indegree 『』数组。

(3)在求关键路径时,需要两次用到拓扑排序(其中一次是逆拓扑排序),在拓扑排序时还需要注意看看是否有环,若有环则输出提示信息。

㈣ 实验总结

Main 函数 创建图

拓扑排序 求最小路径

输出图信息

温故的同时也在实践的新的理论。

对图的应用是在生活中应用很广泛,同时图的知识点和算法也是我们这学期学习的精华,例如求关键路径,用到栈,拓扑排序等经典算法,让我们受益匪浅。

四、主要算法流程图及程序清单

1、主要算法流程图:

创建图拓扑排序

开始

输入顶点数和边数

输入顶点信息

创建顶点向量的数组

输入弧的信息

创建了图的邻接表

结束

开始

将入度为0的压入栈

栈是否

为空

弹出栈顶元素,输出结点信息并将其邻接结点的入度减一,入度为0的入栈

结束

2、程序清单程序过长,可附主要部分)

#include

#include /* malloc()等*/

#include /* INT_MAX 等*/

#include

#include /* exit() */

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

typedef int Status; /* Status 是函数的类型,其值是函数结果状态代码,如OK 等*/ #define INFINITY INT_MAX //定义无穷大∞

#define MAX_VERTEX_NUM 20

typedef int V ertexType;

typedef int InfoType;

typedef struct ArcNode // 表结点定义

{

InfoType info;

int adjvex; //邻接点域,存放与V i邻接的点在表头数组中的位置ArcNode *nextarc; //链域,指示依附于vi的下一条边或弧的结点,

}ArcNode;

typedef struct VNode //表头结点

{ int data; //存放顶点信息

struct ArcNode *firstarc; //指示第一个邻接点

}VNode,AdjList[MAX_VERTEX_NUM];

typedef struct

{ //图的结构定义

AdjList vertices; //顶点向量

int vexnum, arcnum;

int Isquan;//是否含有权值

} MGraph;

int indegree[MAX_VERTEX_NUM];

int ve[MAX_VERTEX_NUM];//e各顶点的最早发生时间

int vl[MAX_VERTEX_NUM];//各顶点发生的最晚发生时间

/* 图的邻接表存储(存储结构定义)的基本操作*/

int LocateV ex(MGraph G,V ertexType u)

{

/* 初始条件: 图G 存在,u 和G 中顶点有相同特征*/

/* 操作结果: 若G 中存在顶点u,则返回该顶点在图中位置;否则返回-1 */

for(i=0;i

if(u==G.vertices[i].data)

return i;

return -1;

};

Status CreateGraph(MGraph &G)

{ int i,j,k;

InfoType vc;

V ertexType va,vb;

ArcNode *p;

cout<<"请输入图的顶点数,边数: ";

cin>>G.vexnum>>G.arcnum;

cout<<"请输入"<

for(i=0;i

{

cin>>G.vertices[i].data;

G.vertices[i].firstarc=NULL;

}

cout<<"是否含有权值:(若不含权值请输入0,否则输入1)\n";

cin>>G.Isquan;

if (!G.Isquan)

cout<<"请顺序输入每条弧的弧尾弧头"<

else

cout<<"请顺序输入每条弧的弧尾弧头以及弧的信息(以空格作为间隔):\n";

for(k=0;k

{

if(!G.Isquan)

cin>>va>>vb;

else

cin>>va>>vb>>vc;

i=LocateV ex(G,va); /* 弧尾*/

j=LocateV ex(G,vb); /* 弧头*/

p=(ArcNode*)malloc(sizeof(ArcNode));

p->adjvex=j;

if(G.Isquan)

p->info=vc;

else

p->info=0;

p->nextarc=G.vertices[i].firstarc; /* 插在表头*/

G.vertices[i].firstarc=p;

} return OK;

}

{ /* 输出图G的信息*/

int i;

ArcNode *p;

cout<

for(i=0;i

cout<

cout<

for(i=0;i

{

p=G.vertices[i].firstarc;

while(p)

{ cout<"<adjvex].data<

p=p->nextarc;

}

}

//system("pause");

}

////////////////////////////////////////////////////////////////////

//

//建立栈相关的数据结构和函数//

typedef struct

{

int *top;

int *base;

int stacksize;

}Sqstack;

typedef int ElemType;

Status Initstack(Sqstack &s)

{ s.base=(int*)malloc(sizeof(int)*25);

if (!s.base)

return ERROR;

s.top=s.base;

s.stacksize=25;

return OK;

}

int Push(Sqstack &s,int &e)

{//向栈输入元素

if(s.top-s.base>=s.stacksize)

{

s.base=(ElemType*)realloc(s.base,(s.stacksize+10)*sizeof(ElemType));

if(!s.base) return 0;

{ s.top=s.base+s.stacksize;

s.stacksize+=10;

}

}

*s.top=e;

s.top++;

return OK;

}

Status Pop(Sqstack &s,int &e)

{

//若栈不空,则删除S的栈顶元素,

//用e返回其值,并返回OK;否则返回ERROR

if(s.top ==s.base)

return ERROR;

e = *--s.top;

return OK;

}//Pop;

int StackEmpty(Sqstack s)

{

//若栈为空栈,则返回TRUE,否则返回FLASE

if( s.top ==s.base)

return 1;

else return 0;

}

/////////////////////////////////////////////////////////////////////////////

void FindDegree(MGraph g,int indegree[])

{

//对=图中的各个顶点的入度进行统计,并将第i个顶点的入度数放入indegree[i]

ArcNode *p;

int i;

for (i=0;i

indegree[i]=0;

cout<<"李星运是个SB "<

for(int j=0;j

for(p=g.vertices[j].firstarc;p!=NULL;p=p->nextarc)

indegree[p->adjvex]++;

}

//对图进行拓扑排序,并输出拓扑排序的结果

{ Sqstack s;

int i;

int count=0;

FindDegree(g,indegree);

Initstack(s);

for ( i=0;i

if(indegree[i]==0)

Push(s,i);//将入度为0的顶点序号压入零入度栈while(!StackEmpty(s))//如果零入度栈中还有结点

{ Pop(s,i);

cout<<"第"<

count++;

for (ArcNode *p=g.vertices[i].firstarc;p;p=p->nextarc)

{ int k=p->adjvex;

if(!(--indegree[k]))

Push(s,k);

}

}

if(count

{

cout<<"不是连通图!"<

return ERROR;

}

else

return OK;

}

//拓扑序列

Status ToopologicalOrder (MGraph g,Sqstack &T)

{

Sqstack s;

int i;

int count=0;

FindDegree(g,indegree);

Initstack(s);//用于存放零入度的结点栈

Initstack(T);//若g不为空,则用T存放柘扑序列

for ( i=0;i

if(indegree[i]==0)

Push(s,i);

//初始化数组各结点的最早时间为0

for( i=0;i

ve[i]=0;

while(!StackEmpty(s))

{

Pop(s,i);//将零入度结点栈中的结点弹出一个结点

Push(T,i);//将弹出的结点序列压入拓扑序列栈T中

count++;

for (ArcNode *p=g.vertices[i].firstarc;p;p=p->nextarc)

{

int k=p->adjvex;

if(!(--indegree[k]))

Push(s,k);//将入度为0的结点压入零入度栈中

if(ve[i]+(p->info)>ve[k])

ve[k]=ve[i]+(p->info);

}

}

if(count

return ERROR;

else

return OK;

}

//关键路径

Status CriticalPath(MGraph g,Sqstack T)

{

int i;

ArcNode *p;

if(!ToopologicalOrder(g,T))

{

cout<<"拓扑排序不成功!\n";

return ERROR;

}

for( i=0;i

vl[i]=ve[i];//将各顶点的最晚发生时间都赋值为最早发生时间

while(!StackEmpty(T))

for (Pop(T,i),p=g.vertices[i].firstarc;p;p=p->nextarc)

{

int k=p->adjvex;

int dut=p->info;

if(vl[k]-dut

vl[i]=vl[k]-dut;//如果顶点的最晚时间大于前一个顶点的最晚时间和其间权

}

for (int j=0;j

for(p=g.vertices[i].firstarc;p;p=p->nextarc)

{ int k=p->adjvex;

int dut=p->info;

int ee=ve[j],el=vl[k]-dut;

cout< "<

}

return OK;

}

void main()

{

MGraph g;

Sqstack T;

cout<<"创建图:\n";

CreateGraph(g);

cout<<"各条弧的信息:\n";

Display(g);

cout<<"拓扑排序:\n";

ToopologicalSort(g);

cout<<"求关键历经:\n";

ToopologicalOrder(g,T);

CriticalPath(g,T);

}

图的遍历操作实验报告

. .. . .. .. 实验三、图的遍历操作 一、目的 掌握有向图和无向图的概念;掌握邻接矩阵和邻接链表建立图的存储结构;掌握DFS及BFS对图的遍历操作;了解图结构在人工智能、工程等领域的广泛应用。 二、要求 采用邻接矩阵和邻接链表作为图的存储结构,完成有向图和无向图的DFS 和BFS操作。 三、DFS和BFS 的基本思想 深度优先搜索法DFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后选择一个与Vo相邻且没被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且没被访问过的顶点Vj访问,……依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则回退到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点W,从W出发按同样方法向前遍历。直到图中所有的顶点都被访问。 广度优先算法BFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后访问与Vo相邻的所有未被访问过的顶点V1,V2,……,Vt;再依次访问与V1,V2,……,Vt相邻的起且未被访问过的的所有顶点。如此继续,直到访问完图中的所有顶点。 四、示例程序 1.邻接矩阵作为存储结构的程序示例

#include"stdio.h" #include"stdlib.h" #define MaxVertexNum 100 //定义最大顶点数 typedef struct{ char vexs[MaxVertexNum]; //顶点表 int edges[MaxVertexNum][MaxVertexNum]; //邻接矩阵,可看作边表int n,e; //图中的顶点数n和边数e }MGraph; //用邻接矩阵表示的图的类型 //=========建立邻接矩阵======= void CreatMGraph(MGraph *G) { int i,j,k; char a; printf("Input VertexNum(n) and EdgesNum(e): "); scanf("%d,%d",&G->n,&G->e); //输入顶点数和边数 scanf("%c",&a); printf("Input Vertex string:"); for(i=0;in;i++) { scanf("%c",&a); G->vexs[i]=a; //读入顶点信息,建立顶点表 }

数字测图实习分析方案(完整)

数字测图实习报告 专业 班级 组号 姓名 学号 指导教师 2018 年 11 月 1 日至 2018 年 11 月12 日 目录

一、实习目的及意义1 二、实习内容及要求1 三、数字地形图测绘基本原理2 四、数字地图测绘过程2 五、参考资料7 六、实习心得8

数字测图实习报告 2018-11-1至2018-11-12我们工程测量技术专业学生在校进行了为期两个星期的数字化测图实习。 一、实习目的及意义 通过这次实习,使我们对《数字化测图》这门课程有一个系统的了解和掌握,进一步加深我们对数字化测图的基本理论和基本知识的理解,提高我们实际操作的能力。本次实习培养了我们理论联系实际,分析问题以及实地解决问题的能力,更要求我们在工作中要实事求是,严谨认真,吃苦耐劳,同时还要团结协作,相互配合,共同完成好小组的实习任务。从各方面锻炼自己,为以后的测量工作打下良好的基础。 二、实习内容及要求 1、实习的具体内容如下: 1、数字地图测绘 <1)练习和掌握全站仪的使用方法; <2)每组测绘一幅1:1000的数字地图; <3)熟悉和掌握南方CASS地形测图软件编辑地形图的基本方法。 2、数字地图的工程应用 <1)完成测站改正; <2)完成设计路线的断面图绘制; <3)用DTM和断面法计算土方量。 3、MAPGIS扫描矢量化 熟悉MAPGIS软件进行扫描矢量化的步骤和方法。 2、实习的具体要求如下 (1)掌握数字化测图的基本过程和基本方法。 (2)掌握并熟练全站仪的使用。 (3)掌握使用数字成图软件<南方CASS)进行数字地图编绘的 方法。

(4)掌握矢量化软件进行地图的扫描矢量化操作步骤和方法。 三、数字地形图测绘基本原理 采用草图法进行数字化测图,主要作业过程分为三个步骤:数据采集,数据处理及地形图的数据输出。在本次实习中利用中纬全站仪进行外业数据采集,在内业计算机上采用南方CASS软件进行数据处理成图。 四、数字地图测绘过程 1、踏勘,选点 本次实习地点是杨凌职业技术学院南校区,地形十分熟悉。 老师带领我们在校区大门口选择一点作为已知点,根据一份小比例尺图,选出一条闭合导线,现场选出导线点,并均匀分布在校内,共计6个点。导线点的选择应注意是否相互通视,架设仪器是否安全方便。 2、控制测量 全站仪测角、测边: 在已知导线点上架设全站仪,对中整平后量取仪器高、开机。同时将棱镜架设在待测点出对中整平。 在全站仪中创建一个文件CL24-02,用来保存测量数据.。 在当前文件下,按照提示输入测站点点号和给定的坐标、仪器高、目标高<取至毫M位),设置EDM,并瞄准后视点,进行后视置零定向。 定向完后仪器照准目标点棱镜,盘左盘右观测并测存,将屏幕显示结果记录在导线坐标记录表上。 导线边长、水平角施测要求及精度要求: ①观测:水平角观测一个测回,起始点采用全圆方向法观 测,内角采用测回法观测;距离测量往测一测回<瞄准目 标一次,读数4次),直接读记平距; ②取位:角度取至秒,距离取至mm,坐标取至mm;

数字化测图实训总结

数字化测图总结 为期三周的数字化测图已经结束了,在这三周里,我和我们小组的成员都很积极,各自做好自己的工作,然后轮流作业,让每一个人都掌握了测图、画草图、跑镜等各个步骤。同时,通过三周的合作,同学们之间增进了友谊,锻炼了合作精神。虽然实习很辛苦,但是当看到我们的实习成果时,我们还是很欣慰的。在这次测量实习中,我们组的同学一直都秉着科学严谨的态度。由于是刚开始实习,我们的理论知识和操作技术都不是很熟,有时一个地区要测好几次呢,虽然辛苦些,总算得到了不错的成果。 这次实习的效果是明显的。从我们第一天不知道该干什么,到后来大家各司其职配合默契,无论是个人操作仪器还是大家一起完成一项测量任务,我们的进步都是有目共睹的。我们在工作过程中必须秉着对全组负责的态度,认真完成自己的任务。同时,这次实习是以小组形式进行的,遇到难题,大家也会一起讨论和解决,虽然并非每次都尽善尽美,但每个组员都基本解决了平时产生的一些小疑惑。通过大家的合作与讨论,大家的知识也得到了补充,而这些在平时是很难发现和解决的。下面来大概介绍下我在实习中做的主要工作: 1.观测:○1观测的工作需要不断的重复,要注意不能按错键,有时大意一下,就会记录错一个点,这时就需要观测者和绘图者的及时交流,每隔几点就要核对一下点号,记录错误时还可以改正,舍弃一点有时也是很有必要的。○2因为观测者和跑尺员有时会相隔很远,跑尺员很难知晓观测员是否记录完毕,所以作为观测者在测量完毕后,

要即时通知跑尺员选择下一个点。○3对中整平的过程中,要注意踩实和来往的人流,因为当地的路面和泥土松弛,有时重力的踩踏地面就可以影响到全站仪的水平,这些会增加对中整平的难度。同时在测量过程中,也应当注意仪器的安稳与安全。○4测量时,要准确无误,做到快准狠兼备。 2.跑尺:○1在扶尺的过程中,应尽量保持棱镜的竖直平稳,不能三心二意,不必要的晃动会增加观测的难度,也会浪费大量的时间。○2由于有时和观测者相距很远,因此需要时常注意观测者的动作,手势还有喊话都要仔细揣摩。○3调整镜高时,要记得及时通知观测者,以便他的更改。○4注意点的选取,要能够有代表性和可观测性,尽量排除障碍物的阻挡,有树枝草木阻挡视线时,可以请组员排除。 3.绘图:○1时刻与观测者交流,确保点号绘图的正确。○2帮助跑尺员选取精确地选择点,记录下特殊点,准确地绘出草图。 总之,从这次实习中我得到了很多知识和教训,期待下一次的实习,希望能够学到更多专业的技巧,还有和大家一起交流合作的时光,我会倍加珍惜!

图的遍历实验报告

实验四:图的遍历 题目:图及其应用——图的遍历 班级:姓名:学号:完成日期: 一.需求分析 1.问题描述:很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示在连通的无向图上访问全部结点的操作。 2.基本要求:以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。 3.测试数据:教科书图7.33。暂时忽略里程,起点为北京。 4.实现提示:设图的结点不超过30个,每个结点用一个编号表示(如果一个图有n个结点,则它们的编号分别为1,2,…,n)。通过输入图的全部边输入一个图,每个边为一个数对,可以对边的输入顺序作出某种限制,注意,生成树的边是有向边,端点顺序不能颠倒。 5.选作内容: (1).借助于栈类型(自己定义和实现),用非递归算法实现深度优先遍历。 (2).以邻接表为存储结构,建立深度优先生成树和广度优先生成树,再按凹入表或树形打印生成树。 二.概要设计 1.为实现上述功能,需要有一个图的抽象数据类型。该抽象数据类型的定义为: ADT Graph { 数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。 数据关系R: R={VR} VR={ | v,w v且P(v,w),表示从v到w得弧,谓词P(v,w)定义了弧的意义或信息} } ADT Graph 2.此抽象数据类型中的一些常量如下: #define TRUE 1 #define FALSE 0 #define OK 1 #define max_n 20 //最大顶点数 typedef char VertexType[20]; typedef enum{DG, DN, AG, AN} GraphKind; enum BOOL{False,True}; 3.树的结构体类型如下所示:

从分时图走势解读主力洗盘和出货

1 (强烈推荐)从分时图走势解读主力洗盘和出货 【第一,上一周商品房市场出现了量缩价升的局面,同时土地拍卖市场迅速升。从统计数据看,住宅的去库存化速度很快,好多热点城市的可售房屋不够卖三个月了,从草根层面的调查看,适宜居住的地段几乎是无房可售了。正是在这种背景下,那些土地储备丰富的地产股梅开二度,而一级土地开发商更是一骑绝尘】。 【第二,中央领导在不同场合多次强调“坚持适度宽松的货币策不动摇”,市场人士心领神会,前期退出等回调的资金,本周再度入场】。 与上述两点相应的是,这两周股票型基金的发行规模迭创新高,一般投资者的入 市热情持续升。从中证流通指数的表现看,这更像是一次实实在在的资金流入, 但流入的背景大家就各自猜测吧。 随着市场的逐步上行,短线上盈利机会肯定是在逐步减少,对很多人来讲,把握机会却越来越难。在市场热点不断涌现的同时,个股和板块的调整也在进行,就是涨跌互见。下面该怎么办?在市场涨幅如此的情况下,没有简单的盈利办法,钻研个股可能是较为稳妥的。~~~~ ******************************************回到正题:探讨些盘口知识。 一、在分时走势中,可以看到很多主力意图的表现,无论是多么娴熟的操作技巧,多么天衣无缝的事前策划,在股市中人算不如天算的事情时有发生,这就给投资者判断主力的真实想法创造了机会,但是在看盘过程中,如果非常专注于分时走势,再加上自己先入为主的心理,很容易被一些细小的非主要因素误导。 每天的分时走势组成了股价的短线、中线和长线趋势,中长线趋势无法左右,但短线的以及当日的走势是很容易受到大资金或大筹码的拥有者的影响,对这种短线行为的分析有助于对中长线走势的把握,不过,这种走势很容易让人忽视对全局的认识。散户投资者大多数都会受到股价涨跌产生强烈的心理影响,一般情况,股价在明显上涨之后,涨势才会明朗,投资者看清这种趋势时才会考虑买进,这样就形成了分时走势中投资者的先入为主,再分析股价时就会自然而然的把分析建立在本身已涨的基础之上,这时感情是主导,而当涨的基调深入投资者心中后,盘面点点滴滴的变化都会引导投资者作出向上涨的可能判断,对此是非常难控制的,有时甚至是不知不觉,可能根本意识不到自己会先入为主,就像不识卢山真面目,只缘身在此山中的状态,目光只会跟着风景走,判断更多的只能是凭直觉了。在思考和判断过程中,事实的真相就摆在我们面前,每一个人都是细心者,但如果将看盘的重点放在小的方面,就没有时间看清大方向,就洞察不到影响股价未来趋势的本质因素了。股市里,一定要深入其中后,适时和及时的站出来,粗中要有细,更重要的是还要细中有粗,才不会模糊了大方向从收盘价看,股票的变化只有两种,一是涨,二是跌,但仅以此判断未来股价的走势远远不够,要想更多了解盘面具体的变化,一定要看分时走势的变化,最普通的比如拉升的时间上就有很多文章,在此我们重点探讨一下在尾市时急速拉升的案例。

数字摄影测量实验报告

《数字摄影测量学》之“4D 产品生产”综 合实习实验报告 一、实验任务及目的 在所有专业课程结束之后,为巩固所学知识,通过毕业前的以实际生产为标准的4D 产品生产实习,进一步深入掌握摄影测量学的基础理论以及全数字摄影测图过程。包括掌握VirtuoZo 的主要模块的功能、数字高程模型(DEM)、数字正射影像(DOM)、数字栅格地图(DRG)、数字线画地图(DLG)的制作工艺与流程。并在4D产品基础上,制作出该区域虚拟现实成果。 此实习主要针对遥感科学与技术专业中摄影测量与遥感方向的本科生。 二、试验流程 设置模型参数设置 影像 参数 设置 DEM 参数 设置 正射 影像 参数 设置 等高 线参 数 模型定向 (内相对绝对) 打开工程 打 开 模 型 核线重采样 影像匹配 编辑匹 配结果 生成 DEM 生成 等高线 生成正 射影像 生成等高线叠合 正射影像 IGS编辑4D产品 将4D成果导入三维软件

三、内容和形式 ●了解掌握VirtuoZo 的主要功能模块,利用自动空中三角测量软件完 成一个区域的加密任务 ●利用空中三角测量的成果,生成DEM ●进行数字微分纠正,生成DOM,并且进行影像镶嵌 ●采用已有航空影像的调绘资料,结合等高线图完成一幅全要素矢量 DLG 制作 ●对已有的纸质地形图扫描数字化,完成DRG 制作 ●将4D成果,导入三维软件,制作虚拟现实场景; 四、实验准备 ●23×23一对数字航空影像以及相应的影像参数。例如:主距、框标距、 摄影比例尺、成图比例尺、控制点、数字高程模型的间隔参数以及正 射影像的比例尺等。 ●每个学生提供一台数字摄影测量工作站VirtuoZo 及立体观测设备

数据结构实验报告-图的遍历

数据结构实验报告 实验:图的遍历 一、实验目的: 1、理解并掌握图的逻辑结构和物理结构——邻接矩阵、邻接表 2、掌握图的构造方法 3、掌握图的邻接矩阵、邻接表存储方式下基本操作的实现算法 4、掌握图的深度优先遍历和广度优先原理 二、实验内容: 1、输入顶点数、边数、每个顶点的值以及每一条边的信息,构造一个无向图G,并用邻接矩阵存储改图。 2、输入顶点数、边数、每个顶点的值以及每一条边的信息,构造一个无向图G,并用邻接表存储该图 3、深度优先遍历第一步中构造的图G,输出得到的节点序列 4、广度优先遍历第一部中构造的图G,输出得到的节点序列 三、实验要求: 1、无向图中的相关信息要从终端以正确的方式输入; 2、具体的输入和输出格式不限; 3、算法要具有较好的健壮性,对错误操作要做适当处理; 4、程序算法作简短的文字注释。 四、程序实现及结果: 1、邻接矩阵: #include #include #define VERTEX_MAX 30 #define MAXSIZE 20 typedef struct { int arcs[VERTEX_MAX][VERTEX_MAX] ; int vexnum,arcnum; } MGraph; void creat_MGraph1(MGraph *g) { int i,j,k; int n,m; printf("请输入顶点数和边数:"); scanf("%d%d",&n,&m); g->vexnum=n; g->arcnum=m; for (i=0;iarcs[i][j]=0;

(整理)分时图中的基本波型-转载新浪博客.

分时图中的基本波型 1、分时图中的平滑波 什么是平滑波?顾名思义,就是指分时图中单根价线的一段连续走势形成的分时 线的平滑性 这并没有文字定义的 其实就是凭我们用眼睛看的 其实不用多讲,你眼睛看到的波型平滑,就是平滑波,不平滑就不是平滑波! 下面请大家来看今天的600476湘邮科技 它的拉涨停的那一段波型 是指的一个整段连续的波型 这就是平滑波! 大家看到没?一段连续的分时线的走势,中间没有任何棱角与尖角,或停顿,且 线性平滑 平滑波是由于主力或庄家主动用巨量资金“连续”拉升时产生的波型,所以它的 含义体现了庄家的实力! 也就是说庄家的实力的体现 为什么这么说呢? 因为散户是没有这个资金量来连续拉动一支个股的

再加上散户行为表现为零散也无序性 所以散户行为就只会产生断断续续的小波型 属无序状态的波型 当主力下杀时,我们常说的刀刃波与瀑布波是庄家大力出货时的波型,跟上升平 滑波相反的 2、尖角波 顾名思义,就是指分时图中,由两根急促的较直的短线构成的夹角 大家来看今天我操作的000752西藏发展 尖角波的含义是,如果向上拉升,且在某个时间内遇抛压的瞬间回落,形成夹角, 时间短且波长也短(不大于3%) 这个由最短波形为标准高度的波型,我们就称为尖角波 尖角波有两种含义: 一就是上面所说的 如果向上拉升,且在某个时间内遇抛压的瞬间回落,形成夹角,时间短且波 长也短(不大于3%)

二就是,上涨拉升时,上方无抛压,但主力资金一时跟不上 形成自然的回落,这也会形成尖角波 但这种尖角波一般会更短 有时短到成为一个棱角 于是,后一种波型我们又称为轻松波(在长波中带尖角波或棱角) 3、推拉波 关于推拉波我已经在以前的课件中写得很清楚了 所以在此仅简单描述一下: 1、长波抖晃不平滑; 2、价涨量平不配合; 此为典型推拉波 课件在民生投资个股分析上都有 4、赶升波 “赶升波”的特点是:

数字化测图实训报告.doc

第一篇数字化测图实训报告 《武汉大学测绘工程数字测图实习报告》 课程编号1030277 课程性质必修武汉大学测绘学院数字测图实习 控制测量实习报告 学院测绘学院 专业测绘工程地点一校区、三校区 班级11级10班 组号姓名王夏学号2011301610405 教师申丽丽、张涛

2012年2月12日至2012年2月25日 《数字测图》实验报告目录 1、前言 (3) 2、实习内容 1、实习项目、方法及要求 (3) 2、相关示意图 (5) 3、实习概况 (7) 4、实习过程 1、踏勘选点 (7) 2、导线测量(外业工作) (7) 3、导线测量(内页计算) (8)

4、水准测量(三等水准) (9) 5、考核 (10) 6、实习心得 (16) 附录1 导线坐标计算表 附录2三角高程计算表 附录3高程误差配赋表 1、前言 由于数字地形测量是一门实践性很强的学科,而测量实习对培养学生思维和动手能力、掌握具体工作程序和内容起着相当重要的作用。所以由学校统一部署安排,我们专业所有学生进行了为期两周的测量实习。 同时通过实习这一重要的实践教学环境,使学生能够理论联系实际,将所学知识系统化,完整化。在进行基本技能训练的基础上,使学生具备一定的动手能力和分析、解决问题的能力,具有较高的操作水平,培养学生的组织能力、协作精神以及实事求是、科学严谨的工作态度和任劳任怨、不畏艰苦的思想作风。

实习目的与要求 1、巩固和加深课堂所学理论知识,培养学生理论联系实际、实际动手能力; 2、熟练掌握常用测量仪器(水准仪、经纬仪、全站仪)的使用; 3、掌握导线测量、三角高程测量、三、四等水准测量的观测和计算方法。实习内容和任务 1、全站仪的加常数、竖角指标差检验和其他常规性检验; 2、水平角方向法多测回观测; 3、城市二级导线测量(全站仪三维导线,采用三角高程); 4、三等水准测量(含水准仪i角的检验及其他常规检验)。 2、实习内容数字化测图实训报告 1、实习项目、方法及要求

数据结构实验报告图实验

邻接矩阵的实现 1. 实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现2. 实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历3.设计与编码MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; }

int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e) { int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: " cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } }

数字化测图实习报告

内蒙古科技大学 《数字化测图原理与方法》 实习报告 学院: 矿业工程学院 专业: 测绘工程10级-班 指导老师: 李世平 姓名: 张庆 学号: 1072143113 日期: 2012.06.30

数字化测图实习报告 一、实习时间和地点: 时间:2012年6月11日至2012年6月30日 地点:内蒙古科技大学校园内 二、实习性质、目的和任务: 《数字化测图原理与方法》实习是测绘工程专业本科生的实践性必修课程。 任务:掌握全站仪的数据采集、数据处理及室内成图。 目的:本次实习是在完成《数字化测图原理与应用》理论教学之后进行的,通过实习,使学生能够把学到的理论知识和实践有机的结合起来,充分提高实际操作技能数字化测图的原理与方法。 三、实习内容与要求: 实习内容: 1.野外数据采集:包括图根控制测量和碎步测量。 2.数据的传输:数据由全站仪传输到计算机,生成图形文件。 3.计算机图形编辑:利用数字测图软件进行人机交互式的图形 编辑与修改。 4.图幅整饰:地形图的分幅、图廊的自动绘制。 5.地形图输出:绘图仪输出图纸。 实习要求:

1.全面、系统的掌握数字化测图的理论和方法。 2.每组应完成一幅(50cm*50cm)1:1000 数字地形图。 3.实际测图过程中,一切操作都应遵循数字化测图图式、规范 的要求。 四、实习测区概况: 内蒙古科技大学坐落在首批全国文明城市、美丽的草原钢城——包头,她始建于1956 年。包头市位于中国内蒙古自治区中西部,坐落在著名的黄河河套顶端,北于蒙古国接壤,东西两侧是土默川平原和河套平原,是连接环渤海经济带和西北地区的战略要地,是自治区战略布局中腹地开发的关键地区,属半干旱中温带大陆性季风气候,2002 年包头市年均气温8.5 ℃,年最低气温- 27.6 ℃,年最高气温35.5 ℃,年降水总量262.9 毫米,年最 大风速11.0米/秒,平均风速1.8 米/秒,年日照时数2806 小时,年平均相对湿度52%,全年沙尘天气12 次。夏秋之时,是包头绝佳季节,清风送爽,花香色艳,瓜果丰盛,蔬菜充足,是理想的避暑胜地。冬春二季,冰封雪飘,银装素裹,别具北国特色。目前,学校占地121 万平方米,建筑面积65 万平方米,其中,教学行政用房31 万平方米。分为东西两院,东院为高职院,西院为本科院。由于测区位于大学校园内交通便利,测区有三条主干道,若干交叉道。形成了网型,由于校园高楼林立,通视条件较差,所以控制网应沿路线布设。形成网型控制网。但是由于校园人流量较大也给测量带来一定的麻烦。测区地势较为平

图的深度优先遍历实验报告

一.实验目的 熟悉图的存储结构,掌握用单链表存储数据元素信息和数据元素之间的关系的信息的方法,并能运用图的深度优先搜索遍历一个图,对其输出。 二.实验原理 深度优先搜索遍历是树的先根遍历的推广。假设初始状态时图中所有顶点未曾访问,则深度优先搜索可从图中某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,直至图中所有与v有路径相通的顶点都被访问到;若此时图有顶点未被访问,则另选图中一个未曾访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。 图的邻接表的存储表示: #define MAX_VERTEX_NUM 20 #define MAXNAME 10 typedef char VertexType[MAXNAME]; typedef struct ArcNode{ int adjvex; struct ArcNode *nextarc; }ArcNode; typedef struct VNode{ VertexType data; ArcNode *firstarc;

}VNode,AdjList[MAX_VERTEX_NUM]; typedef struct{ AdjList vertices; int vexnum,arcnum; int kind; }ALGraph; 三.实验容 编写LocateVex函数,Create函数,print函数,main函数,输入要构造的图的相关信息,得到其邻接表并输出显示。 四。实验步骤 1)结构体定义,预定义,全局变量定义。 #include"stdio.h" #include"stdlib.h" #include"string.h" #define FALSE 0 #define TRUE 1 #define MAX 20 typedef int Boolean; #define MAX_VERTEX_NUM 20

(最新版)数字化测图实验报告(含封面 2014)

东北农业大学实验报告 课程名称:数字化测图技术 课程号:x 实验学期:2014—2015学年第一学期 学院:资源与环境学院 班级:城划1203 学号: A 姓名:付莹

实验一数字测图野外数据采集 (一)实验目的:掌握数字化测图野外数据采集模式、流程与方法 (二)实验内容与要求: 1.测量实习要求,测区任务布置 测区概况: 东北农业大学北区坐落于木材街59号,我小组测区范围为东北农业大学偏北地区,我小组具体范围为研楼及食品学院一带,测区建筑包括研究生楼,食品学院,以及食品院后的楼等建筑物。土地类型有平地,草地,沙地,沥青地面等。现有建筑物3幢,测区面积为54145.49平方米。 2. 测区图根控制测量:外业布网,观测与评差计算,控制测量成果数据 在测区内共有三个控制点,坐标分别为 2602——(..365) 2603——(..206) 2604——(..189) 在测量过程中,加密了两个支导线。在测区中由于树木及其它建筑物等遮挡,导致我测区范围内的部分建筑道路及路灯等独立地物无法观测,我们在已有控制点的基础上在研楼和食品学院进行了加密。 3.全站仪野外数据采集与数据存贮:全站仪参数设置,工程项目建立,外业数据采集数据 格式选择,测站建站及数据采集 测量前的准备工作 仪器的安置。在测量范围内选择一控制点点,作为测站,另外两点作为观测点。将全站仪安置于点,对中、整平。设置棱镜常数测距前须将棱镜常数输入仪器中,仪器会自动对所测距离进行改正。允分做好测量前的准备工作,不仪能使开工前测量工作顺利进行,而且对整个施工过程中的测量丁作都有重要影响。因此有关领导和测量放线:作人员都应重视和全面做好施工测量前的准备工作,为整个工程施工测量能顺利进行打好基础。 测量过程

分时图波形解读

可能很多人对K线技术都有非常深入的见解和认识,不过今天我要所要讲得技术在股市中也是非常重要的,但是很多股民却尚未认识到它的重要性,那就是分时图,透过分时图,我们可以看到主力是如何拉升建仓,是如何吸筹和出货的,是看盘时不可或缺的技术之一。 先来看几种最典型的分时图图形: 1.平滑波:分时图中单根价线的一段连续走势形成的非常平滑的分时线,一定要平滑,不平滑就不是平滑波;这是主力或庄家动用巨量资金“连续”拉升时产生的波型,所以它的含义体现了庄家的实力!这么说的原因是:散户是没有这个资金量来连续拉动一支个股的,再加上散户行为表现为零散也无序性,散户行为就只会产生断断续续的小波型,属无序状态的波型;当主力下杀时,我们常说的刀刃波与瀑布波是庄家大力出货时的波型,跟上升平滑波相反的,见图:

2.尖角波:就是指分时图中,由两根急促的较直的短线构成的夹角,它的含义是,如果向上拉升,且在某个时间内遇抛压的瞬间回落,形成夹角,时间短且波长也短(不大于3%)这个由最短波形为标准高度的波型,我们就称为尖角波;这也是一种非常好的波形,常有机会能收出涨停,见下图;

3.赶升波:它的含义是:上档抛太极大;主力出货坚决;但不能把个股走势形态搞坏!所以小量拉,大量出,不断撤大买单,挂小买单;我们要牢记它的特点:a、中长波不平滑;b、走势基本带拱型;c、成交量的不均匀;这往往是个股下跌前的前兆,如下图:

4.缺口波:主力突然用一笔大单打下上档全部委,于是分时线形成一条直线,且角度接近90度,这是非常强势的一种分时形态,但是往往主力也会采用这种方式进行投机出货,见下图;

图的基本操作 实验报告

实验五图的基本操作 一、实验目的 1、使学生可以巩固所学的有关图的基本知识。 2、熟练掌握图的存储结构。 3、熟练掌握图的两种遍历算法。 二、实验内容 [问题描述] 对给定图,实现图的深度优先遍历和广度优先遍历。 [基本要求] 以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列。 【测试数据】 由学生依据软件工程的测试技术自己确定。 三、实验前的准备工作 1、掌握图的相关概念。 2、掌握图的逻辑结构和存储结构。 3、掌握图的两种遍历算法的实现。 四、实验报告要求 1、实验报告要按照实验报告格式规范书写。 2、实验上要写出多批测试数据的运行结果。 3、结合运行结果,对程序进行分析。

五、算法设计 1、程序所需头文件已经预处理宏定义和结构体定义如下 #include #define MaxVerNum 100 struct edgenode { int endver; int inform; edgenode* edgenext; }; struct vexnode { char vertex; edgenode* edgelink; }; struct Graph { vexnode adjlists[MaxVerNum]; int vexnum; int arcnum; }; 2、创建无向图 void CreatAdjList(Graph* G) { int i,j,k; edgenode* p1; edgenode* p2; cout<<"请输入顶点数和边数:"<>G->vexnum>>G->arcnum; cout<<"开始输入顶点表:"<vexnum;i++) { cin>>G->adjlists[i].vertex; G->adjlists[i].edgelink=NULL; } cout<<"开始输入边表信息:"<arcnum;k++) { cout<<"请输入边对应的顶点:"; cin>>i>>j; p1=new edgenode; p1->endver=j; p1->edgenext=G->adjlists[i].edgelink; G->adjlists[i].edgelink=p1;

数字测图实习报告(完整版)1

数字测图实习报告 专业地籍测绘与土地信息管理 班级地测1411 组号2 姓名郑子汉 学号2014010768 指导教师林军强.张敏 2016年11月15日至2016年12月9日

目录 一、实习目的及意义 (1) 二、实习内容及要求 (1) 三、数字地形图测绘基本原理 (2) 四、数字地图测绘过程 (2) 五、参考资料 (7) 六、实习心得 (8)

数字测图实习报告 2010-11-1至2010-11-12我们工程测量技术专业学生在校进行了为期两个星期的数字化测图实习。 一、实习目的及意义 通过这次实习,使我们对《数字化测图》这门课程有一个系统的了解和掌握,进一步加深我们对数字化测图的基本理论和基本知识的理解,提高我们实际操作的能力。本次实习培养了我们理论联系实际,分析问题以及实地解决问题的能力,更要求我们在工作中要实事求是,严谨认真,吃苦耐劳,同时还要团结协作,相互配合,共同完成好小组的实习任务。从各方面锻炼自己,为以后的测量工作打下良好的基础。 二、实习内容及要求 1、实习的具体内容如下: 1、数字地图测绘 (1)练习和掌握全站仪的使用方法; (2)每组测绘一幅1:1000的数字地图; (3)熟悉和掌握南方CASS地形测图软件编辑地形图的基本方法。 2、数字地图的工程应用 (1)完成测站改正; (2)完成设计路线的断面图绘制; (3)用DTM和断面法计算土方量。 3、MAPGIS扫描矢量化 熟悉MAPGIS软件进行扫描矢量化的步骤和方法。 2、实习的具体要求如下 (1)掌握数字化测图的基本过程和基本方法。 (2)掌握并熟练全站仪的使用。 (3)掌握使用数字成图软件(南方CASS)进行数字地图编绘的方法。

数据结构实验—图实验报告

精品文档数据结构 实 验 报 告

目的要求 1.掌握图的存储思想及其存储实现。 2.掌握图的深度、广度优先遍历算法思想及其程序实现。 3.掌握图的常见应用算法的思想及其程序实现。 实验内容 1.键盘输入数据,建立一个有向图的邻接表。 2.输出该邻接表。 3.在有向图的邻接表的基础上计算各顶点的度,并输出。 4.以有向图的邻接表为基础实现输出它的拓扑排序序列。 5.采用邻接表存储实现无向图的深度优先递归遍历。 6.采用邻接表存储实现无向图的广度优先遍历。 7.在主函数中设计一个简单的菜单,分别调试上述算法。 源程序: 主程序的头文件:队列 #include #include #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int QElemType; typedef struct QNode{ //队的操作 QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue; void InitQueue(LinkQueue &Q){ //初始化队列 Q.front =Q.rear =(QueuePtr)malloc(sizeof(QNode)); if(!Q.front) exit(OVERFLOW); //存储分配失败 Q.front ->next =NULL; } int EnQueue(LinkQueue &Q,QElemType e) //插入元素e为Q的新的队尾元素{ QueuePtr p; p=(QueuePtr)malloc(sizeof(QNode)); if(!p) exit(OVERFLOW); p->data=e;

数字测图实验报告(土方计算)

数字测图实验报告 班级2013012 专业地理信息科学 组别第六组 组员王宁 华北水利水电大学资源与环境学院地理信息科学教研室

CASS土方计算 [实验名称] 用cass软件进行土方量计算 [实验目的] (1)掌握cass计算土方量的方法。 (2)了解土方计算的原理和方法。 [仪器和工具] Cass操作软件 [实验原理] 等高线法计算挖填土方:用户将白纸图扫描矢量化后可以得到图形。但这样的图都没有高程数据文件,所以无法用前面的几种方法计算土方量。 [实验步骤] 根据其自然坡降,按填、挖方量基本平衡的原则,平整为从北到南坡度为-8%的倾斜场地。试写出计算步骤,在图的方格左上方上标出挖、填高度,并计算总的挖、填方量。 计算步骤如下: 首先利用cass软件要对原地形图进行纠正和数字化,之后生成数据文件以备开挖放量计算使用。注:纠正时可设为比例尺1:100,40×40的地形图图幅。 地形图 南方cass7.0 操作步骤如下: 用复合线画出所要计算土方的区域,一定要闭合,但是尽量不要拟合。因为拟合过的曲线在进行土方计算时会用折线迭代,影响计算结果的精度。 用鼠标点取“工程应用”菜单下的“方格网法土方计算”。屏幕上将弹出选择高程坐标文件的对话框,在对话框中选择所需坐标文件。 提示:选择土方计算边界线用鼠标点取所画的闭合复合线。输入方格宽度:(米)<20> 这是每个方格的边长,默认值为20 米。由原理可知,方格的宽度越小,计算精度越高。但如果给的值太小,超过了野外采集的点的密度也是没有实际意义的。 提示:最小高程= XXXX ,最大高程= XXXX , 设计面是:(1)平面(2)斜面<1> 选2。屏幕提示:点取高程相等的基准线上两点,第一点:在斜面坡底处点鼠标左键。第二点:在斜面的坡底另一端,找到一个与第一点高程相等的点,如果实在无法定点,可以估计一个近似的点。注意:这两点的连线将构成此斜面的所有横断面线。因此,这两点的高程应一致,否则会影响计算精度。 屏幕提示:输入基准线设计高程:(米)输入上步所定两点连线的设计高程。

图的遍历操作实验报告

实验三、图的遍历操作 一、目的 掌握有向图和无向图的概念;掌握邻接矩阵和邻接链表建立图的存储结构;掌握DFS及BFS对图的遍历操作;了解图结构在人工智能、工程等领域的广泛应用。 二、要求 采用邻接矩阵和邻接链表作为图的存储结构,完成有向图和无向图的DFS 和BFS操作。 三、DFS和BFS 的基本思想 深度优先搜索法DFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后选择一个与Vo相邻且没被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且没被访问过的顶点Vj访问,……依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则回退到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点W,从W出发按同样方法向前遍历。直到图中所有的顶点都被访问。 广度优先算法BFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后访问与Vo相邻的所有未被访问过的顶点V1,V2,……,Vt;再依次访问与V1,V2,……,Vt相邻的起且未被访问过的的所有顶点。如此继续,直到访问完图中的所有顶点。 四、示例程序 1.邻接矩阵作为存储结构的程序示例 #include"" #include"" ertex); irstedge; irstedge; } } }//endwhile } //==========主函数=========== void main() { ALGraph *G; G=(ALGraph *)malloc(sizeof(ALGraph));

CreatALGraph(G); printf("Print Graph DFS: "); DFS(G); printf("\n"); printf("Print Graph BFS: "); BFS(G,3); printf("\n"); } 五、实验内容 1调试程序。设计一个有向图和一个无向图,任选一种存储结构,完成有向图和无向图的DFS(深度优先遍历)和BFS(广度优先遍历)的操作。 邻接矩阵作为存储结构的运行结果: 邻接链表作为存储结构的运行结果: 六、实验报告要求 画出你所设计的图,写出两种方法的遍历序列。

《数字摄影测量实验报告

《数字摄影测量》 实 验 报 告 院系:矿业工程学院测绘工程 班级:测绘14-2 班 姓名:田海燕 指导教师:叶欣 矿业工程学院·测绘工程教研室

实验一 DEM制作 一、实验目的 1.掌握影像匹配原理及过程,掌握DEM数据的生成原理及实现过程 2.掌握关键步骤:核线影像重采样,生成核线影像对。 3.了解4d的基本概念,了解VirtuoZo NT系统的运行环境及软件模块的操作特点,了解实习工作流程,从而能对4d产品生产实习有个整体概念。 4. 掌握匹配窗口及间隔的设置,运用匹配模块,完成影像匹配。掌握匹配后的基本编辑,能根据等视差曲线(立体观察)发现粗差,并对不可靠区域进行编辑,达到最基本要求。 5.通过DEM透视图显示,检查是否有粗差,确定拼接区域的选定及确定拼接产品的路径。 二、实验内容 1.模型内定向与核线影像的生成。 2.影像匹配及匹配后的编辑。 3.生成单模型DEM。 4.多模型的DEM拼接。 三、实验方法与步骤 1.准备工作 1.启动软件,新建工程,对工程进行命名。 2. 参数检查及设置:选择“工程名”节点,在右方的属性窗口设定工程相关参数 3. 建立影像列表:新建航带,右击影像节点新建航带即可。 4.添加影像病检查相机反转参数。 5.进行控制点的整理与相机参数文件的设置,用以内定向,并检查是否有误。二.DEM的制作 方法是像片的周边通常有4个或8个经过严格校正并获取精确像片坐标框标点,通过量测这些点的像素坐标,构成一个仿射变换的模型,即可把象素纠正到像片坐标系上。由于内定向是程序自动化处理,可能略有误差,为了保证内定向的精确,需一个框标一个框标检查并将十字丝编辑到框标的正中心,且误差需在规范要求内。方法为:先选择框标选择按钮,再在影像工具中将十字丝调整到红色框标中心,为了让十字丝调整更准确,在影像工具窗口中间点击右键可以放大,最好放到1:8倍及以上再调整十字丝,编辑完毕后,需检查误差满足规范要求。 1. 创建立体像对 选择“工程”节点,右键菜单选择“创建立体像对”菜单,即可生成立体像对;2.相对定向, 概念:通过量取一定数量(最少5个)的相对定向点,解求出相邻相片之间的相对位置关系

相关文档
最新文档