数据结构A第三次实验报告.docVIP

  • 2
  • 0
  • 约7.77千字
  • 约 16页
  • 2018-12-24 发布于湖北
  • 举报
实 验 报 告 (2014 / 2015 学年 第 二 学期) 课程名称 数据结构A 实验名称 图的基本运算及飞机换乘次数最少问题 实验时间 年 月 日 指导单位 计算机学院计算机科学与技术系 指导教师 学生姓名 班级学号 学院(系) 管理学院 专 业 信息管理与信息系统 PAGE 12 实 验 报 告 实验名称 图的基本运算及飞机换乘次数最少问题 指导教师 陈蕾 实验类型 设计 实验学时 2 实验时间 2 实验目的和要求 (1)图的基本运算 ①验证教材中关于在邻接矩阵和邻接表两种不同存储结构上实现图的基本运算的算法。 ②在邻接矩阵存储结构上实现图的深度和广度优先遍历算法。 ③设计主函数,测试上述运算。 提示:扩充MGraph类,在扩充类上增加DFS和BFS函数。 (2)飞机最少换乘次数问题 ①设有n个城市,编号为0~n-1,m条航线的起点和终点由用户输入提供。寻找一条换乘次数最少的线路方案。 提示:可以使用有向图表示城市间的航线。只要两城市间有航班,则图中这两点间存在一条权为1的边。可以使用Dijkstra算法实现。 思考:如果是城市公交车的最少换乘问题,将如何解决?假如希望使用类似的算法,则图中的边如何设置? 要求: (1)掌握在图的邻接矩阵和邻接表存储结构实现图的基本运算的算法。 (2)学习使用图算法解决应用问题的方法。 二、实验环境(实验设备) 中文五号宋体,英文五号Times new roman字体,1.25倍行距 硬件:微型计算机 软件:Windows 操作系统、Microsoft Visual C++6.0 三、实验原理及内容 1、类和类的层次结构 Queue{abstra t} + virtual void EnQueue( T x)=0; + virtual void DeQueue()=0 + virtual bool IsEmpty() const=0 + virtual bool IsFull() const=0 + virtual T Front()=0 SeqQueue -int front,rear; -int MaxSize; -T *q; + SeqQueue() +~SeqQueue() + void EnQueue( T x) + void DeQueue() + T Front() + bool IsEmpty() const + bool IsFull() const T T GraphQueue Graph Queue 父类: 父类: LGraphSeqQueue LGraph SeqQueue 子类: 子类: 继承关系 继承关系 Graph{abstract} #int n #int e +virtual ~Graph() +virtual ResultCode Insert(int u, int v, T w)=0 +virtual ResultCode Remove(int u, int v)=0 +virtual bool Exist(int u, int v)const=0 LGraph #ENodeT** a +LGraph(int mSize) +~LGraph() +ResultCode Insert(int u, int v, T w) +ResultCode Change(int u,int v,T w) +ResultCode Remove(int u, int v) +bool Exist(int u, int v)const +int Vertices() +void Output() ExtLGraph +ExtLGraph(int mSize):LGraphT(mSize) +void DFS(); +void BFS(); +void CallInDegree(int* InDegree); +void TopoSort(int* order); +int Choose(int *d,bool* s); +void Dijkstra(int v,T* d,int* path); +void BetweenMinPath(int a,int b); -void DFS(int v, bool* visited); -void BFS(int v, bool* visited); 实

文档评论(0)

1亿VIP精品文档

相关文档