#include<iostream> using namespace std; struct arc { int subscript; arc* next; }; struct point { char data; arc* first; }; struct list { point p[100]; int np, na; }; bool visited[100]; int FirstAdjVex(list L, int f) { if (L.p[f].first == NULL)return -1; return L.p[f].first->subscript; } int NextAdjVex(list L, int f, int w) { arc* p1 = L.p[f].first; while (p1 != NULL) { if (p1->subscript == w && p1->next != NULL) return p1->next->subscript; p1 = p1->next; }return -1; } void DFS(list L, int f) { cout << f<<" "; visited[f] = true; for (int w = FirstAdjVex(L,f); w >= 0; w = NextAdjVex(L, f, w)) if (!visited[w]) DFS(L, w); } int LocateVex(list L, char c){ for (int i = 0; i < 100; i++) { if (L.p[i].data == c)return i; }return -1; } void Create(list& L,int &f){ cin >> L.np >> L.na; for (int i = 0; i < L.np; i++){ visited[i] = false; cin >> L.p[i].data; L.p[i].first = NULL; } for (int k = 0; k < L.na; k++) { char n, m; cin >> n >> m; int i = LocateVex(L, n), j = LocateVex(L, m); arc* p1 = new arc; p1->subscript = j; p1->next = L.p[i].first; L.p[i].first = p1; } char c; cin >> c; f = LocateVex(L, c); } int main() { list L; int f;Create(L, f); if (L.np == 0 || L.np == 1 && L.na > 1)cout << "error"; else { if(LocateVex(L,f)==-1||FirstAdjVex(L,f)==-1)cout<<"error"; else DFS(L, f); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端