- 浏览: 912202 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
masuweng:
不错!!!!!
自定义表单的设计与实现 -
xhackertxl:
注意将jstock cvs下来后去掉原先的J2SE 1.6li ...
开源项目推荐 — 股票分析软件JStock -
luoyexiaozhu:
最近在学表单这一块,没有思路,能发给我一份学习一下吗86239 ...
WEB项目中自定义表单的设计与实现 -
volunteer521:
楼主,以下的引用类没有对应的jar包,麻烦共享以下,谢谢!im ...
通用数据抽取系统 -
baichixiaozi:
体验下,谢谢分享
原创简化Web开发的框架 - JSPTagEx
最近由于项目需要,需要实现深度优先和广度优先算法,图论中的基础内容,源代码共享一下,希望对大家有用:
public class Graph { private final int MAX_VERT=500; private Node nodelist[]; private int adjMat[][]; private int nverts; private Stack theStack; private Queue theQuene; public Graph(){ //顶点数组 nodelist=new Node[MAX_VERT]; //邻接矩阵 adjMat = new int[MAX_VERT][MAX_VERT]; nverts=0; for(int i=0;i<MAX_VERT;i++){ for(int j=0;j<MAX_VERT;j++){ adjMat[i][j]=0; } } theStack=new Stack(); theQuene=new LinkedList(); sortedArray = new BusSiteBean[MAX_VERT]; } /** * 增加一定点 * @param node */ public void addNode(Node node){ nodelist[nverts++]=node; } /** * 增加一边 * @param start * @param end */ public void addEdge(int start,int end){ adjMat[start][end]=1; //有向图 //adjMat[end][start]=1; } public int getAdjUnVisited(int v){ for(int j=0;j<nverts;j++){ if(adjMat[v][j]==1&&nodelist[j].isWasVisited()==false){ return j; } } return -1; } /** * 深度优先搜索算法 */ public void dfs(){ nodelist[0].setWasVisited(true); displayNode(0); theStack.push(0); while(!theStack.isEmpty()){ int v=((Integer)theStack.peek()).intValue(); v=getAdjUnVisited(v); if(v==-1){ theStack.pop(); }else{ nodelist[v].setWasVisited(true); displayNode(v); theStack.push(v); } } for(int j=0;j<nverts;j++){ nodelist[j].setWasVisited(false); } } /** * 广度优先搜索算法 */ public void bfs(){ this.nodelist[0].setWasVisited(true); this.displayNode(0); this.theQuene.add(0); int v2; while(!this.theQuene.isEmpty()){ int v1=((Integer)this.theQuene.remove()).intValue(); while((v2=this.getAdjUnVisited(v1))!=-1){ this.nodelist[v2].setWasVisited(true); displayNode(v2); this.theQuene.add(v2); } } for(int j=0;j<nverts;j++){ nodelist[j].setWasVisited(false); } } private int noSuccessors(){ boolean isEdge; for(int row=0;row<this.nverts;row++){ isEdge=false; for(int col=0;col<this.nverts;col++){ if(adjMat[row][col]>0){ isEdge=true; break; } } if(!isEdge) return row; } return -1; } /** * 有向图拓扑 */ public void poto(){ int orig_nverts=this.nverts; while(this.nverts>0){ int currentNode=noSuccessors(); if(currentNode==-1){ System.out.println("Graph 有环"); return; } sortedArray[this.nverts-1]=nodelist[currentNode].getBs(); deleteNode(currentNode); } for(int j=0;j<orig_nverts;j++){ System.out.print(sortedArray[j]); } } private void deleteNode(int delVert){ if(delVert!=this.nverts-1){ for(int j=delVert;j<this.nverts-1;j++) this.nodelist[j]=this.nodelist[j+1]; for(int row=delVert;row<this.nverts-1;row++) moveRowUp(row,this.nverts); for(int col=delVert;col<this.nverts-1;col++) moveRowLeft(col,this.nverts-1); } this.nverts--; } private void moveRowUp(int row,int length){ for(int col=0;col<length;col++) adjMat[row][col]=adjMat[row+1][col]; } private void moveRowLeft(int col,int length){ for(int row=0;row<length;row++) adjMat[row][col]=adjMat[row][col+1]; } public void displayNode(int v){ System.out.println(nodelist[v].getBs().toString()); } public static void main(String[] args) { Graph g=new Graph(); g.addNode(new Node(new BusSiteBean("A"))); g.addNode(new Node(new BusSiteBean("B"))); g.addNode(new Node(new BusSiteBean("C"))); g.addNode(new Node(new BusSiteBean("D"))); g.addNode(new Node(new BusSiteBean("E"))); g.addNode(new Node(new BusSiteBean("F"))); g.addNode(new Node(new BusSiteBean("G"))); g.addNode(new Node(new BusSiteBean("H"))); g.addEdge(0, 3); g.addEdge(0, 4); g.addEdge(1, 4); g.addEdge(2, 5); g.addEdge(3, 6); g.addEdge(4, 6); g.addEdge(5, 7); g.addEdge(6, 7); g.poto(); } }
评论
3 楼
kongshanxuelin
2008-10-07
wuxuping 写道
你好 你是宁波的吗
是的
2 楼
wuxuping
2008-10-06
你好 你是宁波的吗
1 楼
Element&lina
2008-10-06
还不错,谢谢分享
发表评论
-
自定义表单的设计与实现
2017-06-13 17:46 8182制作调查表或企业内部系统的时候,经常被一系列表单弄得焦头烂 ... -
高性能高可用的服务端研究之Req-Rep模式(附源码)
2014-03-04 10:01 5496最近在思考高可用的 ... -
也说企业应用中的公式管理功能
2011-02-14 13:41 1285在我们日常开发企业应用或互联网应用中,往往会碰到公式的高级定义 ... -
大学时光的陈年旧作:代码收集软件
2009-08-26 13:37 2026记得读大学的时候,经常喜欢收集代码,今天翻看电脑,发现大学时做 ... -
好用的复选树源码改进版
2009-07-02 15:36 3321在我们项目开发过程中,复选树是经常用碰到的,在Ext,JQ等框 ... -
Apache 2.2.x+Tomcat6集群配置备忘
2009-07-01 10:35 2883在我们部署Web应用时,不可避免大多都会涉及到集群问题,此文作 ... -
校内应用API开发源码
2009-06-24 13:04 3450目前在51,校内,facebook开发小应用越来越热,这里我仅 ... -
网页划词自动翻译的实现
2009-06-15 13:01 1266其中机器翻译调用的Google API,将以下代码另存为即可看 ... -
抓取百度Top500歌曲以及地址源码
2009-05-31 11:11 2955在我整理完在线听歌(http://ting.faqee.com ... -
灰色模型预测算法源码
2008-12-09 08:50 2430在我们进行Web项目开发时,经常需要预测一些离散的数据,那么灰 ... -
AS 3.0语言的魅力(12月1日更新例子)
2008-11-28 09:11 1616以前一直用Java,由于某些Web场景的开发不得不用到Flas ... -
通用各类文档读写的设计与实现
2008-11-21 15:25 1474在我们日常的项目开发中,经常碰到需要读取word等文档的需求, ... -
Web上传文件在线压缩的实现
2008-10-16 08:23 2479在我们开发网站的过程中,如果用户上传的文件过大,由于考虑到服务 ... -
在Java调用VB编写的Dll文件
2008-10-15 08:56 5711在公司里,不同的系统使用不能的语言非常正常,我曾经在一个公司就 ... -
即时通信XMPP协议示例程序(可与QQ,MSN等互通)
2008-09-26 11:24 9080运行环境:JDK1.4+ 第三方包:Smack(Openfir ... -
使用Substance制作漂亮的swing皮肤(附源码)
2008-09-25 09:29 6332最近项目用swing开发桌面程序,感觉本身的swing界面实在 ... -
简易基于Ext留言板源码
2008-09-19 13:15 2653以前接私活的时候给医院做个网站,搞了个基于Ext的小论坛,但后 ... -
Java加密算法汇总
2008-09-19 09:46 1681Base64: package com.cxlh.mm; p ... -
网站全文检索的实现(基于lucene 2.0)
2008-09-18 13:46 2048辛辛苦苦做好了一个网站,接下来就必须为用户提供全文检索的功能, ... -
Google API代码
2008-09-18 08:57 1562<html> <head> ...
相关推荐
代码 基于深度优先搜索算法图论代码代码 基于深度优先搜索算法图论代码代码 基于深度优先搜索算法图论代码代码 基于深度优先搜索算法图论代码代码 基于深度优先搜索算法图论代码代码 基于深度优先搜索算法图论代码...
DFS深度优先遍历算法,VS2010环境,可运行,数据是自己随便编的
MATLAB源码集锦-基于深度优先搜索算法图论代码
算法源码-优化与控制:基于深度优先搜索算法图论代码.zip
matlab算法源码图论算法MATLAB源码和文档提取方式是百度网盘分享地址
计算机网络路由算法 源码图论 计算机网络路由算法 源码图论 计算机网络路由算法 源码图论
并行图论算法并行图论算法并行图论算法并行图论算法
C#,图论与图算法,有向图(Direct Graph)广度优先遍历(BFS,Breadth First Search)算法与源程序 图的广度优先遍历(或搜索)类似于树的广度优先遍历(参见本文的方法2)。这里唯一需要注意的是,与树不同,图...
是一款图论算法软件,用于帮助理解学习图论算法细节及其本质。
基于matlab实现的图论模型-Dijkstra算法和Floyd算法 基于matlab实现的图论模型-Dijkstra算法和Floyd算法 基于matlab实现的图论模型-Dijkstra算法和Floyd算法 基于matlab实现的图论模型-Dijkstra算法和Floyd算法 ...
基于深度优先搜索算法图论代码.rar
基于深度优先搜索算法图论代码.zip
利用深度优先搜索算法和广度优先搜索算法解决图论中最短路问题
深度优先遍历,广度优先遍历,Dijkstra算法,Floyd算法,Prim算法,WelshPowell着色算法。
c++实现图的邻接表深度优先遍历,广度优先遍历
数学建模 图论 课件 最小生成树 广度和深度搜索 matlab 程序 数学建模 图论 课件 最小生成树 广度和深度搜索 matlab 程序 数学建模 图论 课件 最小生成树 广度和深度搜索 matlab 程序 数学建模 图论 课件 最小生成树...
图论与计算机,用图论的思想来帮助程序员解决算法
图论的各种算法,深度优先,广度优先,非联通图的生成森林
图论算法在计算机科学中扮演着很重要的角色,它提供了对很多问题都有效的一种简单而系统的建模方式。很多问题都可以转化为图论问题,然后用图论的基本算法加以解决。遗传算法是解优化问题的有效算法,而并行遗传算法...