📄 key09_4.cpp
字号:
//{ test09_4 }
#include"graph2.h"
const int maxnum=20;
int vnum;
boolean satisfy, result;
boolean visited[maxnum];
void dfs(int v)
{int u,w;
visite_gnode(g,v,1);
getch();
visited[v]=true;
w=firstadj(g,v);
vnum=vnum+1;
while ( (w!=0)&&satisfy)
{
if(!visited[w] )
dfs(w);
else
satisfy=false;
w=nextadj(g,v,w);
}
}
boolean Is_dirtree_V(datagraph& g,int v)
{
reset_vgnode_mode(1);
gotoxy(1,1);
unsigned char s[31];
Spaces(s,30);
cout<<s;
gotoxy(1,1);
cout<<"root "<<v<<":";
unsigned char ss[20]="";
Convs(v,ss);
unsigned char st[20]="From ";
strcat(st,ss);
disp_graph(st,g);
vnum=0;
satisfy=true;
for (int i=1;i<=nodes(g) ;i++)
visited[i]=false;
dfs(v);
cout<<endl;
boolean Is_Dirtree_V=boolean(satisfy && vnum==nodes(g) );
return Is_Dirtree_V ;
}
boolean Is_dirtree(datagraph& g)
{ boolean judge;
int i;
judge=false;
for (i=1;i<=nodes(g);i++)
judge=judge||Is_dirtree_V(g,i);
boolean Is_Dirtree=judge;
return Is_Dirtree;
}
main()
{
get_graph(g);
display_graph("Dfs graph",g);
window(1,1,80,4);
result=Is_dirtree(g);
cout<<"Is_Dirtree="<<result;
Wait();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -