欧拉回路

2021-04-06 08:45

#include <stdio.h>

#include <string.h>

struct stack {int top , node[210];} f; //顶点的堆栈

int a[201][201]; //图的邻接矩阵

int n;

void dfs(int x) //图的深度优先遍历

{

int i;

f.top ++; f.node[f.top] = x;

for (i = 1; i <= n; i ++)

if (a[i][x] > 0)

{

a[i][x] = 0; a[x][i] = 0; //删除此边 dfs(i);

break;

}

}

void Euler(int x) //欧拉回路算法

{

int i , b;

f.top = 0;

f.node[f.top] = x; //入栈

while (f.top >= 0)

{

b = 0;

for (i = 1; i <= n; i ++)

if (a[f.node[f.top]][i] > 0)

{

b = 1;

break;

}

if (b == 0) //如果没有点可以扩展,输出并出栈 {

printf("%d " , f.node[f.top]);

f.top --;

}

else

{

f.top --;

dfs(f.node[f.top+1]);

} //如果有,就DFS

}


欧拉回路.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:合同签订和履行风险防范

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: