news 2026/4/21 6:31:03

广度/深度优先遍历思想

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
广度/深度优先遍历思想

广度优先遍历类似二叉树或者其他算法的层序遍历,一层一层的去搜索。

#include <stdio.h> typedef char VertexType typedef int edgetype #define Maxsize 100 typedef struct { VertexType vertex[Maxsize]; //定义一维数组来存储顶点 edgetype arc[Maxsize][Maxsize]; //二维数组保存连接状况 int vertex_num; //顶点数 int edge_num; //边数 } Mat_Grph; int visited[Maxsize] //定义一维数组,0表示没访问过,1表示访问过 int front = 0; int rear = 0; int queue[Maxsize]; //创建队头队尾和队数组 void create_graph(Mat_Grph *G){ //创建图 G->vertex_num = 9; G->edge_num = 15; G->vertex[0] = 'A'; G->vertex[1] = 'B'; G->vertex[2] = 'C'; G->vertex[3] = 'D'; G->vertex[4] = 'E'; G->vertex[5] = 'F'; G->vertex[6] = 'G'; G->vertex[7] = 'H'; G->vertex[8] = 'I'; for(int i = 0;i<G->vertex_num;i++){ for(int j = 0;j<G->vertex_num;j++){ G->arc[i][j] = 0; } } //先行覆盖二维数组为0 G->arc[0][1] = 1; G->arc[0][5] = 1; //A-B A-F G->arc[1][2] = 1; G->arc[1][6] = 1; G->arc[1][8] = 1; //B-C B-G B-I G->arc[2][3] = 1; G->arc[2][8] = 1; //C-D C-I G->arc[3][4] = 1; G->arc[3][6] = 1; G->arc[3][7] = 1; G->arc[3][8] = 1; //D-E D-G D-H D-I G->arc[4][5] = 1; G->arc[4][7] = 1; //E-F E-H G->arc[5][6] = 1; //F-G G->arc[6][7] = 1; //G-H for(int i = 0;i<G->vertex_num;i++){ for(int j = 0;j<G->vertex_num;j++){ G->arc[j][i] = G->arc[i][j]; //对称覆盖,因为是边双向的 } } void bfs(Mat_Grph G){ //bfs:breath first search int i = 0; visited[i] = 1; //更改状态为:已访问过 printf("%c\n",G->vertex[i]); queue[rear] = i; rear++; while(front!=rear){ i = queue[front]; front++; for(int k = 0;k<G->vertex_num;k++){ if(G->arc[i][k]==1&&visited[k]==0){ visited[k] = 1; printf("%c\n",G->vertex[k]); queue[rear] = k; rear++; } } } int main(){ Mat_Grph G; create_graph(&G); bfs(G); return 0; }

深度优先搜索类似树的先序遍历,头左右,走到整个树的最底下,无路可走(不能再向下延伸)时,依次返回上一个节点,再看有没有另一个同层序的孩子。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 13:56:03

小程序计算机毕设之基于SpringBoot+微信小程序的微信刷题系统管理系统基于springboot+微信小程序的在线复习小程序(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/18 20:43:58

小程序计算机毕设之基于springboot+微信小程序的钓鱼交友与渔具回收的微信小程序开发钓点信息、天气预报、文章信息、联系钓友、商城管理(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/19 20:24:15

小程序毕设选题推荐:基于springboot+微信小程序的钓鱼交友与渔具回收的微信小程序开发基于微信小程序的钓鱼论坛小程序系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/18 8:52:27

Github Copilot 实战: 使用 Copilot AI + Blazor 编一个五子棋游戏

创建 Blazor web工程,选Autoimage2. 打开 GitHub Copilot 窗口,输入提示词使用 Blazor 编一个五子棋游戏image3.复制代码测试为了方便调试, 我们先把运行模式由 InteractiveAuto 改为 InteractiveServer打开 App.razor 编辑 两行 rendermode"InteractiveAuto" 改为 r…

作者头像 李华
网站建设 2026/4/20 13:10:11

【课程设计/毕业设计】基于微信小程序的应急救援小能手软件系统基于springboot+微信小程序的应急救援小能手软件系统的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/18 12:04:45

【课程设计/毕业设计】基于Springboot+微信小程序的校园二手交易平台小程序基于springboot+微信小程序的社区论坛与二手交易平台的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华