- 浏览: 257269 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
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 956摘自: http://blog.sina.com.cn/s/b ... -
StringBuffer的常用方法
2015-03-30 16:06 949摘自:http://blog.csdn.net/deaful/ ... -
什么是反射、反射能干什么、如何使用反射?
2013-08-16 00:03 4822//来源互联网 一、什 ... -
Class.forName···关于Class. 的应用介绍
2013-08-15 23:36 1144//摘自互联网 Class.forName(xxx.xx ... -
java泛型map的用法(转2)
2013-07-25 23:04 91781.声明一个map: Map map = ne ... -
java泛型map的用法(转)
2013-07-25 22:56 3103http://www.apkbus.com/blog-2079 ... -
关于日期 Date Calendar
2013-07-23 22:46 1121import java.security.Timestam ... -
正则表达式 例子
2013-07-22 23:00 820import java.util.regex.Matche ... -
Iterator的使用方法
2013-07-18 21:45 0import java.util.*; publ ... -
泛型的写法种种
2013-07-18 21:41 1015public class Generics<T> ... -
ArrayList ,LinkedList, TreeSet的使用方法
2013-07-18 21:35 2308import java.util.*; public ... -
Stack的使用方法
2013-07-18 21:26 1361import java.util.Stack; ... -
Hashtable的使用方法介绍
2013-07-18 21:24 22791**************************** ... -
老式枚举的使用方法
2013-07-18 21:23 937import java.util.Enumeration; ... -
java中Map的各种排序介绍
2013-07-14 13:24 1720//本篇来源于互联网 HashMap: 最常用的Ma ... -
java配置文件用法
2013-04-14 22:43 1299package cn.com.mfsoft.config; ... -
java利用反射得到实例
2013-04-10 22:44 1266对于面向接口编程的项目免不了要一反射相接触,动态得到实例: ... -
spring的beanFactory和factoryBean
2013-04-05 16:10 2117spring的beanFactory和factoryBe ... -
Spring配置文件总结
2013-04-05 16:05 877Spring配置文件总结(转) 2010-06-07 23: ... -
Spring 的微内核与FactoryBean扩展机制
2013-04-05 15:49 1581Spring 的微内核与FactoryBean扩展机制 ...
相关推荐
图的深度遍历和广度遍历是两个重要的算法,这也是我们理解并掌握图这一数据结构的基础。通过此程序算法可以进一步掌握图的构造以及遍历的相关知识。
邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历
图的遍历---深度和广度 图的遍历---深度和广度 图的遍历---深度和广度 图的遍历---深度和广度 图的遍历---深度和广度 图的遍历---深度和广度 图的遍历---深度和广度
图 深度遍历 广度遍历 图 深度遍历 广度遍历
在邻接矩阵的存储结构下,实现图的深度优先遍历和广度优先遍历。
深度优先遍历 广度优先遍历 的实现 深度优先遍历 广度优先遍历 的实现 深度优先遍历 广度优先遍历 的实现
pptjoin 深度遍历 广度遍历
任意图的深度遍历、广度遍历基本操作,数据结构基本实验。
实现二叉树的深度遍历广度遍历等关于二叉树的基本操作
图的遍历 广度优先和深度优先 采用vc++编写iostream输入和输出
很多涉及图上操作的算法都是以图的遍历操作为基础的、是写一个程序,演示在连通的无向图上访问全部节点的操作。
邻接矩阵表示法深度遍历和广度遍历 邻接矩阵表示法深度遍历和广度遍历 邻接矩阵表示法深度遍历和广度遍历 邻接矩阵表示法深度遍历和广度遍历
深度优先遍历和广度优先遍历 建立图的应用等等
二叉树广度和深度优先遍历,通过递归算法实现二叉树的建立,利用递归算法实现深度优先遍历,使用队列实现广度优先遍历
以文件操作输入邻接矩阵存储的无向图,广度和深度的递归遍历
无向图建立、深度优先遍历和广度优先遍历实现算法[借鉴].pdf
C语言课程实验报告,图的深度遍历与广度遍历程序源代码,在Visual C++ 6.0上已经通过
图的深度优先遍历和广度优先遍历
无向图的连接表存储结构的创建...从编号为v的顶点出发,深度优先遍历图的算法 对具有G.vexnum个顶点的图的深度优先遍历的算法 从图G的v顶点出发,广度优先遍历图的算法 对具有G.vexnum个顶点的图的广度优先遍历的算法
通过算法实现图的深度优先遍历和广度优先遍历