news 2026/4/16 10:58:01

广度/深度优先遍历思想

作者头像

张小明

前端开发工程师

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/16 2:36:02

【毕业设计】基于springboot+微信小程序的社区论坛与二手交易平台的设计与实现(源码+文档+远程调试,全bao定制等)

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

作者头像 李华
网站建设 2026/4/16 9:10:07

运维转行网络安全要学的东西有哪些?转行分别有哪些好处?

运维转行网络安全要学的东西有哪些&#xff1f;转行分别有哪些好处&#xff1f; “开发写的 BUG&#xff0c;凭啥我来背锅&#xff1f;”“重启能解决 90% 的问题&#xff0c;偏不让停机&#xff0c;眼睁睁看着系统卡成 PPT&#xff01;”—— 这届运维工程师的日常&#xff0…

作者头像 李华
网站建设 2026/4/15 8:13:00

网络安全知识基础知识篇:10 个必学基础知识点(如防火墙原理、弱口令防护)从零基础到实战,小白必看攻略

文章目录 一、网络安全概述 1.1 定义1.2 信息安全特性1.3 网络安全的威胁1.4 网络安全的特征 二、入侵方式 2.1 黑客 2.1.1 入侵方法2.1.2 系统的威胁 2.2 IP欺骗与防范 2.2.1 TCP等IP欺骗基础知识2.2.2 IP欺骗可行的原因2.2.3 IP欺骗过程2.2.4 IP欺骗原理2.2.5 IP欺骗防范 2.…

作者头像 李华
网站建设 2026/4/14 11:58:17

Java毕设选题推荐:基于springboot案件管理系统设计与实现基于java案件管理系统设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】

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

作者头像 李华
网站建设 2026/4/16 0:18:13

Java毕设选题推荐:基于SpringBoot的景点门票销售管理系统基于JAVA白云山景点门票销售管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

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

作者头像 李华
网站建设 2026/4/15 12:06:07

计算机小程序毕设实战-基于springboot+微信小程序的社区论坛与二手交易平台的设计与实现基于Springboot+微信小程序的校园二手交易【完整源码+LW+部署说明+演示视频,全bao一条龙等】

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

作者头像 李华