- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构图的基本运算及飞机换乘次数最少问题
实习题名:图的基本运算及飞机换乘次数最少问题
问题描述
图的基本运算
①验证在邻接矩阵和邻接表两种不同存储结构上实现图的基本运算的算法;
②在邻接矩阵存储结构上实现图的深度和宽度优先遍历算法。
2. 飞机最少换乘次数问题n个城市,编号为0~n?1,m条航线的起点和终点由用户输入提供。寻找一条换乘次数最少的线路方案。(提示:可以使用有向图表示城市间的航线。只要两城市间有航班,则图中这两点间存在一条权为1的边。可以使用Dijkstra算法实现。)
二
三
(1)图的基本运算
#includeiostream.h
const int INFTY=2147483640;
enum ResultCode{Underflow,Duplicate,Failure,Success,NotPresent};
template class T
class Graph //抽象类
{
public:
virtual ResultCode Insert(int u,int v,Tw)=0;
virtual ResultCode Remove(int u,int v)=0;
virtual bool Exist(int u,int v)const=0;
protected:
int n,e;
};
templateclass T //循环队列类
class SeqQueue
{
public:
SeqQueue(int mSize);
~SeqQueue(){delete []q;}
bool IsEmpty() const{return front==rear;}
bool IsFull() const{return (rear+1)%maxSize==front;}
bool Front(T x)const;
bool EnQueue(T x);
bool DeQueue();
void Clear(){front=rear=0;}
private:
int front,rear;
int maxSize;
T *q;
};
templateclass T
SeqQueueT::SeqQueue(int mSize) //构造函数
{
maxSize=mSize;
q=new T[maxSize];
front=rear=0;
}
templateclass T
bool SeqQueueT::Front(T x)const //取队头元素
{
if(IsEmpty())
{
return false;
}
x=q[(front+1)%maxSize];
return true;
}
templateclass T
bool SeqQueueT::EnQueue(T x) //在队尾插入x
{
if(IsFull())
{
coutFullendl;
return false;
}
q[rear=(rear+1)%maxSize]=x;
return true;
}
templateclass T
bool SeqQueueT::DeQueue() //删除队头元素
{
if(IsEmpty())
{
coutUnderflowendl;
return false;
}
front=(front+1)%maxSize;
return true;
}
template class T
class MGraph:public GraphT //邻接矩阵类
{
public:
MGraph(int mSize,const T noedg);
~MGraph();
ResultCode Insert(int u,int v,Tw);
ResultCode Remove(int u,int v);
bool Exist(int u,int v)const;
void DFS();
您可能关注的文档
最近下载
- 中学食堂建设项目社会稳定风险评估报告(模板范文).docx
- 第9课 互传密信有诀窍 教案 义务教育人教版信息科技五年级全一册.docx VIP
- 根本原因分析精神病人自杀RCA.pptx VIP
- SL523-2024 水土保持监理规范.docx VIP
- 路面结构层厚度评定表(代表值自动计算).xls VIP
- 雨虹防水质保合同范本Word模板.docx VIP
- 旅游产品策划与设计422全书教学课件电子教案.ppt
- Toll样受体信号通路中MyD88的研究进展_吴燕燕.pdf VIP
- 2024水土保持工程施工监理规范.docx VIP
- 义务教育版(2024)五年级全一册 第1课 生活处处有算法 教案.docx VIP
文档评论(0)