- 浏览: 265274 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
saishangxue123:
文章写的清楚、明了,一气呵成,支持
什么是反射、反射能干什么、如何使用反射? -
allen3010:
1,2,3,4,5这六个数字。。。。。
用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列
//深度优先遍历**************************************************** class Graph1 { //以邻接矩阵存储的图类 protected int n; //图的节点个数 protected int mat[][]; // 二维数组存储图的邻接矩阵 protected int visited[]; //访问标记数组 public Graph1(int m1[][]){ n = m1.length; mat = new int [n][n]; System.arraycopy(m1, 0, mat, 0, n); //System类方法,复制数组 visited= new int [n]; } public Graph1(){ } public void depthFirstSearch(){ //图的深度优先遍历 System.out.println("深度优先遍历Depth first search:"); for(int k=1;k<=n;k++){ depthfs(k); System.out.println(); unvisited(); } } private void unvisited() { int i; for(i = 0;i<visited.length;i++){ visited[i]=0; } } private void depthfs(int k) { //从节点k开始的深度优先遍历 int i,j=0; System.out.print(" v"+k+"->"); i = k - 1; visited[i]=1; while(j<n){ if(mat[i][j]==1 && visited[j]==0){ depthfs(j+1); }else { j++; } } } } public class testGraph1{ public static void main(String ag[]){ int mat[][]= {{0,1,0,0},{0,0,1,1},{0,0,0,0},{1,0,1,0}}; Graph1 g1 = new Graph1(mat); g1.depthFirstSearch(); } } //广度优先遍历***************************************************** public class OnelinkNode { //单向链表的节点结构 public int data; public OnelinkNode next; public OnelinkNode(int k){ //构造值为k的节点 data = k; next = null; } public OnelinkNode(){ this(0); } } public class Graph2 extends Graph1 { //以邻接表存储的图类 OnelinkNode table[]; //图的邻接表 public Graph2(int mat[][]){ //以邻接矩阵的形式建立图的邻接表 n = mat.length; // 继承Graph1类的成员 table = new OnelinkNode[n+1]; //建立节点表,多一个元素 OnelinkNode p = null, q; int i ,j ; for(i = 1; i<= n;i++){ //table[0]不用 节点序号i与table中的 下标一致 table[i] = new OnelinkNode(i); //创建i在节点表中的元素 p = table[i]; //建立节点i的出边表 for(j = 1; j<=n;j++){ //查找与i相邻的其他节点j if(mat[i-1][j-1]==1){ q = new OnelinkNode(j); p.next = q; p = q; } } visited = new int [n +1]; } } public Graph2(){} public void output(){ OnelinkNode p; System.out.println("邻接表table:"); for(int i=0;i<table.length;i++){ System.out.print("table["+i+"]="); if(table[i]!=null){ System.out.print("v"+table[i].data); p = table[i].next; while(p != null){ System.out.print("->v"+p.data); p = p.next; } } System.out.println(" null"); } } /* public void depthfs(int k){ int i , j = 0; OnelinkNode p ; System.out.print(" v" +k+" ->"); i = k; visited[i]=1; if(table[i]!=null){ p = table[i].next; while(p !=null){ j = p.data; if(visited[j]==0){ depthfs(j); }else{ p = table[i].next; } } } } */ public static void main(String args[]){ int mat[][]= {{0,1,0,0},{0,0,1,1},{0,0,0,0},{1,0,1,0}}; Graph2 g2 = new Graph2(mat); //现在的g2已经是一个邻接表了不是邻接矩阵了 g2.output(); } } //邻接表table: //table[0]= null //table[1]=v1->2->4 null //table[2]=v2->1->3->4 null //table[3]=v3->2->4 null //table[4]=v4->1->2->3 null
发表评论
-
java时间大小比较
2015-04-02 21:48 1013摘自: http://blog.sina.com.cn/s/b ... -
StringBuffer的常用方法
2015-03-30 16:06 1017摘自:http://blog.csdn.net/deaful/ ... -
什么是反射、反射能干什么、如何使用反射?
2013-08-16 00:03 4901//来源互联网 一、什 ... -
Class.forName···关于Class. 的应用介绍
2013-08-15 23:36 1226//摘自互联网 Class.forName(xxx.xx ... -
java泛型map的用法(转2)
2013-07-25 23:04 92431.声明一个map: Map map = ne ... -
java泛型map的用法(转)
2013-07-25 22:56 3162http://www.apkbus.com/blog-2079 ... -
关于日期 Date Calendar
2013-07-23 22:46 1175import java.security.Timestam ... -
正则表达式 例子
2013-07-22 23:00 861import java.util.regex.Matche ... -
Iterator的使用方法
2013-07-18 21:45 0import java.util.*; publ ... -
泛型的写法种种
2013-07-18 21:41 1077public class Generics<T> ... -
ArrayList ,LinkedList, TreeSet的使用方法
2013-07-18 21:35 2369import java.util.*; public ... -
Stack的使用方法
2013-07-18 21:26 1414import java.util.Stack; ... -
Hashtable的使用方法介绍
2013-07-18 21:24 23511**************************** ... -
老式枚举的使用方法
2013-07-18 21:23 992import java.util.Enumeration; ... -
java中Map的各种排序介绍
2013-07-14 13:24 1770//本篇来源于互联网 HashMap: 最常用的Ma ... -
java配置文件用法
2013-04-14 22:43 1345package cn.com.mfsoft.config; ... -
java利用反射得到实例
2013-04-10 22:44 1317对于面向接口编程的项目免不了要一反射相接触,动态得到实例: ... -
spring的beanFactory和factoryBean
2013-04-05 16:10 2186spring的beanFactory和factoryBe ... -
Spring配置文件总结
2013-04-05 16:05 925Spring配置文件总结(转) 2010-06-07 23: ... -
Spring 的微内核与FactoryBean扩展机制
2013-04-05 15:49 1686Spring 的微内核与FactoryBean扩展机制 ...
相关推荐
两种常见的遍历方法是深度优先遍历(Depth-First Search, DFS)和广度优先遍历(Breadth-First Search, BFS)。在JavaScript中,我们可以使用递归或非递归的方法来实现这两种遍历。 1. **深度优先遍历**: 深度...
深度优先遍历和广度优先遍历
在邻接矩阵的存储结构下,实现图的深度优先遍历和广度优先遍历。
"图的深度优先遍历和广度优先遍历算法" 图的深度遍历和广度遍历是两个重要的算法,这也是我们理解并掌握图这一数据结构的基础。通过此程序算法可以进一步掌握图的构造以及遍历的相关知识。 图的深度优先遍历算法 ...
### Python 实现深度遍历和广度遍历的方法 在计算机科学中,树是一种非常重要的数据结构,广泛应用于各种算法和程序设计中。对于树结构的遍历是理解和操作树形结构的基础。本文将详细介绍如何使用Python语言实现两...
"pptjoin 深度遍历 广度遍历"这一主题聚焦于两种不同的遍历策略:深度优先搜索(DFS)和广度优先搜索(BFS)。这些方法在解决各种问题时具有广泛的应用,例如网络爬虫、查找最短路径、判断连通性等。 深度优先搜索...
邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历
在JavaScript编程中,广度优先遍历(Breadth-First Search, BFS)和深度优先遍历(Depth-First Search, DFS)是两种常见的树或图的遍历算法。这两种算法在处理数据结构时有着广泛的应用,特别是在网络爬虫、图形用户...
本文详细介绍了Java实现二叉树的深度优先遍历和广度优先遍历算法,通过实例代码展示了深度优先遍历和广度优先遍历的实现过程,并对二叉树的定义、深度优先遍历与广度优先遍历算法原理与相关操作实现技巧进行了详细...
在JavaScript中,深度优先遍历(DFS,Depth-First Search)和广度优先遍历(BFS,Breadth-First Search)是两种常见的图或树的遍历算法,广泛应用于数据结构和算法中,例如在游戏编程、图论问题解决、网页爬虫等领域...
本话题主要探讨如何使用非递归算法对无向图进行深度优先遍历(DFS, Depth First Search)和广度优先遍历(BFS, Breadth First Search),这两种遍历方法在图算法中有着广泛的应用。 **1. 邻接表表示法** 在处理大...
二叉树广度和深度优先遍历,通过递归算法实现二叉树的建立,利用递归算法实现深度优先遍历,使用队列实现广度优先遍历
无向图建立、深度优先遍历和广度优先遍历实现算法 本文将详细介绍无向图的建立、深度优先遍历和广度优先遍历的实现算法。这些算法是数据结构中非常重要的内容,掌握它们对后续学习和应用非常重要。 一、无向图的...
在这个主题中,我们将深入探讨两种主要的遍历方法:深度优先搜索(DFS)和广度优先搜索(BFS)。这两个算法在计算机科学中有着广泛的应用,如网络爬虫、社交网络分析、游戏状态搜索等。 深度优先搜索(DFS)是一种...
C/C++实现图的深度优先遍历和广度优先遍历
图的深度遍历和广度遍历是图论中的两种基本搜索策略,它们在计算机科学中有着广泛的应用,尤其是在算法设计、数据结构处理、网络路由等领域。本篇实验报告将详细探讨这两种遍历方法,并提供C语言实现的源代码。 ...
在这个压缩包中,包含了一个用C语言实现的程序,用于执行图的深度优先遍历(DFS, Depth-First Search)和广度优先遍历(BFS, Breadth-First Search)。以下是这两个遍历方法的详细解释: 1. **深度优先遍历(DFS)*...
深度遍历和广度遍历生成树,C++实现,可直接运行。
图遍历主要有两种方法:深度优先搜索(DFS,Depth-First Search)和广度优先搜索(BFS,Breadth-First Search)。这两种算法在处理网络数据结构、树结构、搜索问题以及解决许多其他计算问题时都扮演着核心角色。 ##...