一道图的深度优先遍历数据结构问题!

2024-11-20 08:44:43
推荐回答(1个)
回答(1):

#include 
using namespace std;

  int bt[233],des[233],nxt[233],nd[233],n,m,cnt;

  void dfs(int po){
   printf("%d\n",po);bt[po]=1;
   for (int p=nd[po];p!=-1;p=nxt[p])
     if (!bt[des[p]])
       dfs(des[p]);
  }

  int main(){
   scanf("%d%d",&n,&m);
   for (int i=1;i<=n;i++) nd[i]=-1;
   for (int i=1;i<=m;i++){
     int x,y;
     scanf("%d%d",&x,&y);
     nxt[++cnt]=nd[x];des[cnt]=y;nd[x]=cnt;
}
dfs(1);
  }