信科 实验15_用邻接矩阵表示带权无向图类Graphmtx定义(4学时,8章).doc

信科 实验15_用邻接矩阵表示带权无向图类Graphmtx定义(4学时,8章).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信科 实验15_用邻接矩阵表示带权无向图类Graphmtx定义(4学时,8章)

实验15用邻接矩阵表示带权无向图的类Graphmtx定义(验证,4学时) (第08章 图) 术语:带权无向图的模板基类Graph,用邻接矩阵表示带权无向图的类GraphmtxGraphmtx的成员和友元函数 序号 函数 函数原型 说明 1 输入,提取操作符重载 friend istream operator(istream, GraphmtxT,E); 待实现,题1 友元函数 2 输出,插入操作符重载 friend ostream operator(ostream, GraphmtxT,E); 待实现,题1 友元函数 3 构造函数 Graphmtx(int sz=DefaultVertices); 待实现,题1 4 析构函数 ~Graphmtx(); 已实现,题1 5 取第i个顶点名称 T getValue(int i); 已实现,题1 6 取边权值 E getWeight(int v1,int v2); 已实现,题1 7 取顶点v的第一个邻接顶点 int getFirstNeighbor(int v); 待实现,题2 从位置0开始查找到第一个邻接顶点 8 取v的邻接顶点w的下一邻接顶点 int getNextNeighbor(int v,int w); 待实现,题2 从w的下一个位置开始查找到第一个邻接顶点 9 插入顶点 bool insertVertex(const T vertex); 待实现,题1 10 插入边 bool insertEdge(int v1,int v2,E weight); 待实现,题1 11 删除顶点 bool removeVertex(int v); 待实现,题2 12 删除边 bool removeEdge(int v1,int v2); 待实现,题2 13 给出顶点的位置 int getVertexPos(const T vertex); 已实现,题1 带权无向图的模板基类//带权无向图的模板基类(抽象基类) //文件名:p349_Graph.h #includeiostream using namespace std; #ifndef GRAPH_H #define GRAPH_H const int maxWeight=0x7FFFFFFF; //代表无穷大,32位二进制数 const int DefaultVertices=30; //默认最大顶点数 templateclass T,class E//顶点类型T,边权值类型E,E一般为某一整数类型 class Graph{//图的类定义 public: Graph(int sz=DefaultVertices){} //构造函数 ~Graph(){}//析构函数 bool GraphEmpty()const//判图空否。有否? { return numEdges==0; } bool GraphFull()const//判图满否。与存储容量有关。 { return numVertices==maxVertices || numEdges==maxVertices*(maxVertices-1)/2; }//邻接矩阵计边 int NumberOfVertices(){ return numVertices; }//返回当前顶点数 int NumberOfEdges(){ return numEdges; }//返回当前边数 virtual T getValue(int i)=0; //取顶点i的值,i不合理返回0,纯虚函数 virtual E getWeight(int v1,int v2)=0;//取边(v1,v2)上的权值 virtual int getFirstNeighbor(int v)=0; //取顶点v的第一个邻接顶点 virtual int getNextNeighbor(int v,int w)=0; //取邻接顶点w的下一个邻接顶点 virtual bool insertVertex(const T vertex)=0; //插入一个顶点vertex virtual bool insertEdge(int v1,int v2,E cost)=0; //插入边(v1,v2),边权值为cost virtual bool removeVertex(int v)=0; //删去顶点v和关联边 virtual bool removeEdge(int v1,int v2)=0; //在图中删去边(v1,v2) virtual int getVertexPos(T vertex)=0; //给出顶点vertex在图中的位置 protected: int max

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档