千家信息网

java编程无向图结构的存储及DFS操作代码的示例分析

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章将为大家详细讲解有关java编程无向图结构的存储及DFS操作代码的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。图的概念图是算法中是树的拓展,树是从
千家信息网最后更新 2024年11月28日java编程无向图结构的存储及DFS操作代码的示例分析

这篇文章将为大家详细讲解有关java编程无向图结构的存储及DFS操作代码的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

图的概念

图是算法中是树的拓展,树是从上向下的数据结构,结点都有一个父结点(根结点除外),从上向下排列。而图没有了父子结点的概念,图中的结点都是平等关系,结果更加复杂。

无向图 有向图

图G=(V,E),其中V代表顶点Vertex,E代表边edge,一条边就是一个定点对(u,v),其中(u,v)∈V。

这两天遇到一个关于图的算法,在网上找了很久没有找到java版的关于数据结构中图的存储及其相关操作。于是找了一本java版的数据结构书看了一下,以下是根据书上的讲解整理的一个关于无向图的存储和对图的深度优先遍历。不过这个遍历只能遍历连通图,要想遍历非连通图,还需要修改。在这里分享一下代码希望对有需要的人有帮助。

package com.homework;/**  * 定义栈类  */class StackX{        private final int size = 20;        private int[] st;        private int top;        //初始化栈         public StackX(){                st = new int[size];                top = -1;        }        //进栈         public void push(int j){                st[++top] = j;        }        //出栈         public int pop(){                return st[top--];        }        //返回栈顶元素         public int peak(){                return st[top];        }        //判断栈是否为空         public Boolean isEmpty(){                return (top==-1);        }}/**  * 定义图中的节点类  * @author Administrator  *  */class Vertex{        public char label;        public Boolean wasVisited;        public Vertex(char lab){                label = lab;                wasVisited = false;        }}/**  * 定义图类  * @author Administrator  *  */class Graph{        private final int num = 20;        private Vertex vertexList[];        //图中节点数组         private int adjMat[][];        //节点矩阵         private int nVerts;        //当前节点数         private StackX theStack;        //定义一个栈         //初始化图的结构         public Graph(){                vertexList = new Vertex[num];                adjMat = new int[num][num];                nVerts = 0;                for (int i=0; i

程序运行的结果:

The order visited:ABCED

关于"java编程无向图结构的存储及DFS操作代码的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

节点 结构 结点 无向 存储 代码 数据 数据结构 篇文章 j++ 图中 示例 分析 编程 代表 更多 概念 深度 算法 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 苏州网络技术服务包括什么 修改和删除数据库数据的语句 学习通连接服务器 杭州途鹰网络技术有限公司 无线网络技术在旅游中的应用 wow大服务器什么意思 我的世界服务器地址怎么建 php数据库名 罗湖区网络技术质量服务 爱康科技与互联网 哪个大学软件开发比较厉害 贵州服务器数据迁移虚拟主机 网络安全防护和应急处置 福建省总干校网络安全招标 网络安全知识图谱示例推理 网络安全横向纵向怎么区分 塔可夫怎么选服务器 战地1服务器租赁 什么是浏览器服务器bs模式 支撑软件开发指哪些 研祥软件开发工资待遇 甲骨文数据库不好吗 上海智慧医养软件开发系统 app软件软件开发外包 网络安全知识大讲堂 网易云下载音乐服务器错误 上海软件开发软件有哪些 江苏国土空间规划数据库入库标准 数据库接口程序只能执行一遍 visio 软件开发模板
0