数据结构实验四图的深度优先与广度优先遍历.docxVIP

  • 17
  • 0
  • 约3.08千字
  • 约 4页
  • 2020-11-05 发布于山东
  • 举报

数据结构实验四图的深度优先与广度优先遍历.docx

天津理工大学实验报告 学院(系)名称: 算机与通信工程学院 姓名 学号 算机科学与技 班 2009 1 班 目 实验四 图的深度优先与广度优先遍历 程名称 数据 构与算法 程代 2011 年 5 月 12 日 第 5-8 地点 7 号楼 215 批改意 成 教 字: 实验四 图的深度优先与广度优先遍历 : 2011 年 5 月 12 日, 12:50 -15:50 (地点: 7-215 ) 目的: 理解 的 特点;掌握理解 的两种主要存 构( 接矩 和 接表) ,掌握 的构造、深 度 先遍 、广度 先遍 算法。 具体 目: (任 教 根据 大 自己指定) 每位同学按下述要求 相 算法: 根据从 入的数据 建 ( 的存 构可采用 接矩 或 接表),并 行深度 先搜索和广度 先搜索 1) 描述:在主程序中提供下列菜 : 1? 的建立 2?深度 先遍 3?广度 先遍 0? 束 2) 要求: 的存 可采用 接表或 接矩 ;定 下列 程: CreateGraph(): 按从 的数据建立 DFSGrahp() :深度 先遍 BFSGrahp() :广度 先遍 告格式及要求: 按学校印刷的 告模版 写。 (具体要求 四) 精选 实验思路: 首先,定义邻接矩阵和图的类型,定义循环队列来存储,本程序中只给出了有向图 的两种遍历, 定义深度优先搜索和广度优先搜索的函数, 和一些必要的函数, 下面的程序中会有说明,然后是函数及运行结果! #includeiostream #includecstdlib using namespace std; #define MAX_VERTEX_NUM 20// 最大顶点数 #define MaxSize 100 bool visited[MAX_VERTEX_NUM]; enum GraphKind{AG,AN,DG,DN};// 图的种类,无向图,无向网络,有向图,有向网 络 struct ArcNode{ int adjvex; ArcNode * nextarc; }; struct VNode{ int data; ArcNode * firstarc; }; struct Graph{ VNode vertex[MAX_VERTEX_NUM]; int vexnum,arcnum;//顶点数,弧数 GraphKind kind;// 图的类型 }; struct SeqQueue{ int *base; int front,rear; }; SeqQueue InitQueue(){//循环队列初始化 SeqQueue Q; Q.base = new int; Q.front=0; Q.rear=0; return Q; } void DeQueue(SeqQueue Q,int u){//出队操作 u = *(Q.base+Q.front); Q.front = (Q.front+1)%MaxSize; } int QueueFull(SeqQueue Q){//判断循环队列是否满 return (Q.front==(Q.rear+1)%MaxSize)?1:0; } 精选 void EnQueue(SeqQueue Q,int x){//入队操作 if(QueueFull(Q)){ cout队满,入队操作失败! endl; exit(0); } *(Q.base+Q.rear) = x; Q.rear = (Q.rear+1)%MaxSize; } void CreateDG(Graph G,int n,int e){// 初始化邻接表头结点 int j; for(int i=0;in;++i){ G.vertex[i].data=i;G.vertex[i].firstarc=NULL; } for(i=0;ie;++i){ cinij;// 输入边的信息 ArcNode* s; s= new ArcNode; s-adjvex = j; s-nextarc = G.vertex[i].firstarc; G.vertex[i].firstarc = s; } } void Visit(Graph G,int u) { coutG.vertex[u].data ; } int FirstAdjVex(Graph G,int v){ if(G.vertex[v].firstarc) return G.vertex[v].firstarc-adjvex; else return -1; } int NextAdjVex(Graph G,int v,int w){ ArcNode* p =

文档评论(0)

1亿VIP精品文档

相关文档