好资源#include #include #include using namespace std; //表结点 typedef struct ArcNode{ int adjZZZeV;//该弧所指向的顶点的位置 ArcNode *neVtarc;//指向下一条弧的指针 }ArcNode; //头结点 typedef struct xNode{ string data;//顶点信息 ArcNode* firstarc;//第一个表结点的地址,指向第一条依附该顶点的弧的指针 }xNode, AdjList[10]; typedef struct{ AdjList ZZZertices; int ZZZeVnum, arcnum;//图的顶点数和弧数 }ALGraph; int LocatexeV(ALGraph G, string u)//返回顶点u正在图中的位置 { for(int i=0; i<G.ZZZeVnum; i++) if(G.ZZZertices[i].data==u) return i; return -1; } ZZZoid CreateUDG(ALGraph &G)//结构无向图 { string ZZZ1, ZZZ2; int i, j, k; cout<>G.ZZZeVnum>>G.arcnum; cout<<"请输入顶点:"; for(i=0; i>G.ZZZertices[i].data; G.ZZZertices[i].firstarc=NULL; } cout<<"请输入边:"; cout<<endl; for(k=0; k>ZZZ1>>ZZZ2; i=LocatexeV(G, ZZZ1); j=LocatexeV(G, ZZZ2); //插入ZZZ1的邻接表,为了进步效率,总正在表头插入结点。 ArcNode *arc=new ArcNode; arc->adjZZZeV=j; arc->neVtarc=G.ZZZertices[i].firstarc; G.ZZZertices[i].firstarc=arc; //插入ZZZ2的邻接表,为了进步效率,总正在表头插入结点。 arc=new ArcNode; arc->adjZZZeV=i; arc->neVtarc=G.ZZZertices[j].firstarc; G.ZZZertices[j].firstarc=arc; } } ZZZoid Print(ALGraph G)//打印邻接表 { cout<<"打印邻接表如下:"; cout<<endl; for(int i=0; i<G.ZZZeVnum; i++)//遍历每个顶点的邻接表 { cout<<G.ZZZertices[i].data; ArcNode *p=G.ZZZertices[i].firstarc; while(p) { cout<"<adjZZZeV].data; p=p->neVtarc; } cout<adjZZZeV; else return -1; } int NeVtAdjxeV(ALGraph G, int ZZZ, int w)//返回顶点ZZZ的相应付w的下一个邻接点序号 { ArcNode* p=G.ZZZertices[ZZZ].firstarc; while(p) { if(p->adjZZZeV==w) break; p=p->neVtarc; } if(p->adjZZZeV!=w || !p->neVtarc)//假如没找到w大概w是最后一个邻接点 return -1; return p->neVtarc->adjZZZeV; } bool ZZZisited[10]; ZZZoid DFS(ALGraph G, int ZZZ) { ZZZisited[ZZZ]=true; cout<<G.ZZZertices[ZZZ].data<=0; w=NeVtAdjxeV(G, ZZZ, w) ) if(!ZZZisited[w]) DFS(G, w); } ZZZoid DFSTraZZZerse(ALGraph G)//深搜 { for(int i=0; i<G.ZZZeVnum; i++) ZZZisited[i]=false; for(i=0; i<G.ZZZeVnum; i++) if(!ZZZisited[i]) DFS(G, i); } ZZZoid BFSTraZZZerse(ALGraph G)//广搜 { queue q; for(int i=0; i<G.ZZZeVnum; i++) ZZZisited[i]=false; for(i=0; i<G.ZZZeVnum; i++) { if(!ZZZisited[i]) { q.push(i); ZZZisited[i]=true; while(!q.empty()) { int ZZZ=q.front(); q.pop(); cout<<G.ZZZertices[ZZZ].data<=0; w=NeVtAdjxeV(G, ZZZ, w)) { if (!ZZZisited[w]) { q.push(w); ZZZisited[w]=true; } } } } } } ZZZoid main() { ALGraph G; CreateUDG(G); Print(G); cout<<"深搜:"; DFSTraZZZerse(G); cout<<endl; cout<<"广搜:"; BFSTraZZZerse(G); cout<<endl; }
来了! 中公教育推出AI数智课程,虚拟数字讲师“小鹿”首次亮...
浏览:80 时间:2025-01-13变美指南 | 豆妃灭痘舒缓组合拳,让你过个亮眼的新年!...
浏览:63 时间:2024-11-10中国十大饮料排行榜 中国最受欢迎饮品排名 中国人最爱喝的饮料...
浏览:61 时间:2024-11-19ICLR 2025|小米新一代Kaldi语音识别算法CR...
浏览:16 时间:2025-02-10物联网在智慧城市建设中的关键作用:连接、感知、智能响应...
浏览:38 时间:2025-01-14BEV数据集标注成本高?BEVPose:减少对标注数据依赖!...
浏览:14 时间:2025-02-10对话荣耀赵明:以AI重构未来,荣耀Magic7系列引领行业新...
浏览:6 时间:2025-02-22资本视角下的AI浪潮:关注AI基建带来的系统性投资机会...
浏览:5 时间:2025-02-22