基本遍歷:

//dfs

void dfs(int x)
{
v[x]=1;
for(int i=head[x];i;i=next[i])
{
int y=ver[i];
if(v[y]) continue;
dfs(y);
}
} //bfs void bfs(int x)
{
queue<int>q;
q.push(x);v[x]=1;
while(q.size())
{
int u=q.front();q.pop();
for(int i=head[u];i;i=next[i])
{
int y=ver[i];
if(v[y]) continue;
v[y]=1;
q.push(y);
}
}
}

dfs求樹和圖的信息

//dfs時間戳

void dfs(int x)
{
dfn[x]=++cnt;
v[x]=1;
for(int i=head[x];i;i=next[i])
{
int y=ver[i];
if(v[y]) continue;
dfs(y);
}
} //dfs序 void dfs(int x)
{
dfsx[++cnt]=x;
v[x]=1;
for(int i=head[x];i;i=next[i])
{
int y=ver[i];
if(v[y]) continue;
dfs(y);
}
dfsx[++cnt]=x;
} //樹的深度 void dfs(int x)
{
v[x]=1;
for(int i=head[x];i;i=next[i])
{
int y=ver[i];
if(v[y]) continue;
deep[y]=deep[x]+1;
dfs(y);
}
} //子樹大小+樹的重心 void dfs(int x)
{
size[x]=v[x]=1;
int max_part=0;
for(int i=head[x];i;i=next[i])
{
int y=ver[i];
if(v[y]) continue;
dfs(y);
size[x]+=size[y];
max_part=max(max_part,size[y]);
}
max_part=max(max_part,n-size[x]);
if(max_part<ans)
{
ans=max_part;
pos=x;
}
} //圖的連通塊劃分 void dfs(int x)
{
v[x]=cnt;
for(int i=head[x];i;i=next[i])
{
int y=ver[i];
if(v[y]) continue;
dfs(y);
}
} for(int i=1;i<=n;++i)
if(!v[i])
{
++cnt;
dfs(i);
}

bfs求樹和圖的信息

//拓撲排序

void topsort()
{
queue<int>q;
for(int i=1;i<=n;++i)
if(deg[i]==0) q.push(i);
while(q.size())
{
int x=q.front();q.pop();
a[++cnt]=x;
for(int i=head[x];i;i=next[i])
if(--deg[ver[i]]==0) q.push(ver[i]);
}
} int main()
{
cin>>n>>m;
for(int i=1;i<=m;++i)
{
int x,y;
scanf("%d%d",&x,&y);
add(x,y);
}
topsort();
for(int i=1;i<=cnt;++i)
printf("%d ",a[i]);
return 0;
}

最新文章

  1. Ubuntu16.04安装Samba
  2. 20151208Study
  3. HDU 4865 Peter&#39;s Hobby(概率、dp、log)
  4. 删除表数据drop、truncate和delete的用法
  5. 将数组里的元素拼接成sql里的in条件
  6. (Stack)Basic Calculator I &amp;&amp; II
  7. 第九讲:HTML5该canvas推箱子原型实现
  8. STM32驱动DHT11温湿度传感器
  9. 1.centOS安装Mysql
  10. Shell和命令基础
  11. sum() 函数性能堪忧,列表降维有何良方?
  12. Springboot2注解使用Mybatis动态SQL
  13. vue_drf之支付宝接口
  14. [原]Jenkins(十八) jenkins再出发之jenkins 内置变量
  15. time&amp;datetime模块详解
  16. 注意:Tomcat Get请求的坑!
  17. linux学习笔记-conky配置开机启动方法
  18. 在webstorm中配置sass环境
  19. ios中UIWebview和asiHttprequest的用法
  20. Python学习之路:一天搞定基础部分

热门文章

  1. 说一说switch关键字的奥秘
  2. 互联网基础知识------OSI七层网络模型梗概
  3. 『optimization 动态规划』
  4. 《 .NET并发编程实战》阅读指南 - 第9章
  5. WPF 高级篇 MVVM 附加属性
  6. Reactor的NIO线程模型
  7. Windows git和cmd代理设置
  8. 深入挖崛:mysql主从复制原理
  9. HDU2023求平均成绩 - biaobiao88
  10. make几个知识点