数据结构图的应用报告

上传人:宝路 文档编号:23508845 上传时间:2017-12-01 格式:DOC 页数:6 大小:38.01KB
返回 下载 相关 举报
数据结构图的应用报告_第1页
第1页 / 共6页
数据结构图的应用报告_第2页
第2页 / 共6页
数据结构图的应用报告_第3页
第3页 / 共6页
数据结构图的应用报告_第4页
第4页 / 共6页
数据结构图的应用报告_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数据结构图的应用报告》由会员分享,可在线阅读,更多相关《数据结构图的应用报告(6页珍藏版)》请在金锄头文库上搜索。

1、数据结构课程设计图的应用个人报告1979:Red and Black第一、题目理解有一个长方形的房间,覆盖平方米瓷砖。每一层的颜色或是红色或黑色。一名男子正站在一个黑色的瓷砖。从瓷砖,他可以转移到四个相邻瓷砖。但是他不能进入红色瓷砖,他只能移动黑砖。写程序的数量黑色瓦片,他可以达到通过重复上述动作。题目要求只能走黑格子而不能走红格子,从其中一块黑格子开始求出可以到达的黑格子数。第二、算法思想用图的深度优先遍历可以解决问题,从开始的位置探索四个方向的格子,用递归直到走完所有黑格子。建图结构,图的每一个顶点表示瓦片,如果两个相邻顶点都表示黑瓦,则在两个顶点间连线,表示可以从一片黑瓦移到另一片上;对

2、建好的图从给定的起始点开始调用深度优先遍历算法,能访问几个顶点表示重复移动能达到的黑瓦的数目.第三、如何实现用一个二维数组来表示房间格子的分布。用变量 count 来记录可行黑格子的个数。用深度优先遍历算法来遍历整个二维数组。search(int k,int t) / Search 函数,递归调用. if(k=0 & k=0 & tw)if(akt=.)count+;akt=*;search(k-1,t);search(k+1,t);search(k,t-1);search(k,t+1); 1915: Knight Moves第一、题目理解题目要求要计算国际象棋中骑士从一个指定位置到目的位置的

3、最少步数。因为每一次都有八种走法,要把可行的走法记录下来,直到走到终点为止。输出最少的步数。第二、算法思想此问题可利用广度优先遍历算法,用一个数组来记录可行的走法,然后再用另一个数组来记录数组中的每一种情况的可行走法,重复以上步骤,当终点出现在第 n 数组中则结束。数组的数量 n 就是最小的步数。第三、如何实现数据结构:typedef struct /定义顶点的结构int x, y;int direction;VRType; typedef struct int arcsMAX_VERTEX_NUMMAX_VERTEX_NUM;int length;MGraph;typedef VRType

4、QElemType; /队列定义#define MAXQSIZE 1000typedef struct QElemType *base;int front;int rear;SqQueue;1094:Sorting It All Out第一、题目理解给一堆格式为 A B 的关系式,然后判断有没有一个可以排列的顺序,输出判断结果。当一个升序序列确定时,输出确定时处理到第几个关系式和排好序的升序序列;当不确定时,输出不确定;当矛盾时,输出发现矛盾时处理到第几个关系。第二、算法思想用拓扑排序可以解决问题。把这些字母之间的关系看成有向图。其算法思想是:(1)在有向图中选一个没有前驱的顶点且输出之。 (

5、2)从图中删除该顶点和所有以他为尾的弧。重复上述两步,直到全部顶点输出。第三、如何实现(可以是全局变量的设置,用的数据结构等)用邻接表作为存储结构,把每个字母作为顶点。依照它们之间的关系初始化表中每个顶点的入度数。全局变量:int indegreeMAX_VERTEX_NUM;int listMAX_VERTEX_NUM;/记录序列数据结构:typedef struct/定义堆栈SElemType *top;SElemType *base;int stacksize;SqStack;/图的邻接表储存表示typedef struct ArcNode int adjvex;struct ArcNo

6、de *nextarc;ArcNode;typedef structAdjList vertices;int vexnum;int arcnum;ALGraph;typedef struct/ VertexType data;ArcNode *firstarc;VNode,AdjListMAX_VERTEX_NUM;1251:Jungle Roads第一、题目理解大道路网的维护成本太高了,必须选择停止维持一些道路,当然需要有一些办法让所有村庄之间都有路到达,即使路线并不像以前一样短。写一个程序,将解决选择一些路,使得总的维护费用最少。第二、算法思想将每个村庄看成一个顶点,路看成边,构造图,求图

7、的最小生成树第三、如何实现(可以是全局变量的设置,用的数据结构等)typedef struct Aov /定义结构体存储与每个村庄直接相连的村庄以及保养此路的花费int cost; /花费char village; /村庄struct Aov * next;*Aovc; 1125:Stockbroker Grapevine第一、题目理解要用最快的方法将消息传给你所有的客户,而客户只信任他们认为信得过的人,按照此要求找出传播最快的方法。第二、算法思想可用图的最短路径思想解决问题。从某一个人出发到其他人的时间,求出他们当中耗时最少的那一位。用 Dijkstra 算法求每个节点到其它节点的最短路径,从中选择到最远顶点最短路径的节点,就是让谣言传遍全部顶点时间最短的谣言源点,到最远顶点的最短路径就是那个时间.由此求出从每一个点出发到所有点的最短路径后,相互进行比较,得到最小的点。第二、如何实现(可以是全局变量的设置,用的数据结构等)数据结构:#define MAXNUM 2000#define MAX_VERTEX_NUM 101typedef structint arcsMAX_VERTEX_NUMMAX_VERTEX_NUM;int vexnum;MGraph;typedef int closedgeMAX_VERTEX_NUM;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号