- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 2024年凯度O2O白皮书.pdf VIP
- 外教社新编英语语法教程(第6版)PPT课件(试用版)Unit 15.pptx VIP
- 2025年江西司法警官职业学院单招职业技能测试题库及完整答案1套.docx
- 《化工企业生产过程异常工况安全处置准则》专题培训.pptx VIP
- 4.1 我们需要呼吸(说课稿)-四年级上册科学大象版.docx VIP
- 财务工作移交清单模板.docx VIP
- 最新部编版小学一年级语文上册第三单元测试卷(附答案) .pdf VIP
- (人教版2024)九年级化学 跨学科实践活动《微型空气质量“检测站”的组装与使用》课件.pptx
- 小儿急腹症的诊断和治疗.ppt VIP
- 2025年军工产品标准化大纲.pptx VIP
文档评论(0)