设为首页 加入收藏

TOP

邻接多重表存储无向图以及有关操作(四)
2014-11-24 03:13:35 来源: 作者: 【 】 浏览:5
Tags:邻接 多重 存储 向图 以及 有关 操作
while(jrear)

{

if(jrear->ivex == i && jrear->jvex == j)

break;

else if(jrear->jvex == j)

{

jpre=jrear;

jrear=jrear->jlink;

}

else if(jrear->ivex == j)

{

jpre=jrear;

jrear=jrear->ilink;

}

}

if(!jrear)

return false;

}

else

{

//irear->ivex == j

while(jrear)

{

if(jrear->ivex == j && jrear->jvex == i)

break;

else if(jrear->ivex == j)

{

jpre=jrear;

jrear=jrear->ilink;

}

else if(jrear->jvex == j)

{

jpre=jrear;

jrear=jrear->jlink;

}

}

if(!jrear)

return false;

}

//下面是开始删除,待删除边不是第一条边的情况

if(irear->ivex == i && irear->jvex == j)

{

//删除时要判断每个顶点关联的前一条边的情况

if(ipre->ivex == i)

ipre->ilink=irear->ilink;

else

ipre->jlink=irear->ilink;

if(jpre->ivex == j)

jpre->ilink=jrear->jlink;

else

jpre->jlink=jrear->jlink;

delete irear;

arcnum--;

return true;

}

else

{

//irear->jvex == i && irear->ivex == j

//删除时要判断每个顶点关联的前一条边的情况

if(ipre->ivex == i)

ipre->ilink=irear->jlink;

else

ipre->jlink=irear->jlink;

if(jpre->ivex == j)

jpre->ilink=jrear->ilink;

else

jpre->jlink=jrear->ilink;

delete irear;

arcnum--;

return true;

}

}

}

else

cout<<"该边不存在"<

return false;

}

//深度优先遍历

void DFS_Traverse()

{

for(int i=0;i

visited[i]=false;

for(i=0;i

if(!visited[i])

DFS(i);

cout<

}

void DFS(int v)

{

visited[v]=true;

cout<

EBox *p=adjmulist[v].firstedge;

while(p)

{

if(p->ivex == v)

{

if(!visited[p->jvex])

DFS

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ReportingServicetextbox换行 下一篇App数据层设计及云存储使用指南

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)