资源简介
数据结构 图 (邻接矩阵) java图形界面 实现
图的深度优先遍历算法 广度遍历算法 删除增加顶点等

代码片段和文件信息
//数据结构:图遍历程序
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class MGraph
{
private boolean[] visited; //是否遍历过
private int[][] graph; //二维数组图
public linkedList vertex = new linkedList(); //定义链表来存储图的顶点
public MGraph()
{
vertex.clear();
visited = new boolean[10];
graph = new int[10][10];
for(int i = 0; i < 10; i++)
{
visited[i] = false;
for(int j = 0; j < vertex.size(); j++)
{
graph[i][j] = 0;
}
}
}
public void initGraph() //构造默认图
{
vertex.clear(); //清空链表
vertex.addLast(“A“);
vertex.addLast(“B“);
vertex.addLast(“C“);
vertex.addLast(“D“);
vertex.addLast(“E“);
this.Delvisited();
//把有边的设为1
graph[0][1] = 1;graph[1][0] = 1; //点1-2
graph[0][4] = 1;graph[4][0] = 1; //点1-5
graph[1][2] = 1;graph[2][1] = 1; //点2-3
graph[1][3] = 1;graph[3][1] = 1; //点2-4
graph[2][4] = 1;graph[4][2] = 1; //点3-5
}
public void Delvisited() //初始化遍历数组
{
for(int i = 0; i < vertex.size(); i++)
visited[i] = false;
}
/*
public String GetVex(int i) //取图中第i个顶点的数据信息
{
return vertex.get(i);
}
*/
public void PutVex(int iString value) //将图中第i个顶点的数据域置为value
{
vertex.set(ivalue);
}
public void AddVex(String value) //在图中加入一个顶点值为value
{
vertex.addLast(value);
}
public void ShowVex()
{
for(int i=0;i {
System.out.print(“顶点“+(i+1)+“: “+vertex.get(i));
GraphGui.textarea1.append(“顶点“+(i+1)+“: “+vertex.get(i)+“ “);
}
}
public void DeleteVex(int x) //删除图中第x个顶点
{
vertex.remove(x); //删除一个顶点后,注意vertex.size()已经减少1了
for(int i=x;i for(int j=0;j {
graph[i][j]=graph[i+1][j];
}
for(int i=0;i for(int j=x;j {
graph[i][j]=graph[i][j+1];
}
}
public void InserArc(int iint j) //在图中插入一条边,其依附的两个顶点的编号为i和j
{
graph[i][j] = 1;
}
public void DeleteArc(int iint j) //在图中删除一条边,其依附的两个顶点的编号为i和j
{
graph[i][j] = 0;
}
public void DFSTraverse(int x) //深度优先遍历图
{
System.out.print(vertex.get(x)+“ “); //访问顶点
GraphGui.textarea2.append(vertex.get(x)+“ “);
visited[x] = true; //标记为已访问过
for(int i = 0; i < vertex.size(); i++)
{
if(graph[x][i] == 1 && visited[i] == false) //如果有边而又未被访问过
{
DFSTraverse(i); //递归遍历点
}
}
}
public void BFSTraverse(int v) //广度优先遍历图
{
Queue queue=new Queue(); //初始化队列
System.out.print(vertex.get(v)+“ “); //访问顶点
GraphGui.textarea2.append(vertex.get(v)+“ “);
visited[v] = true;
queue.EnQueue(v); //当前访问的顶点的编号入队
while(queue.is
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9753 2011-05-29 18:30 GraphGui.java
----------- --------- ---------- ----- ----
9753 1
相关资源
- java-图片识别 图片比较
- 百度地图自定义Markerandroid
- 基于Java的图书管理系统807185
- java sql2008的图书馆管理系统
- java图状数据结构转换为树状数据结构
- jsp基于servlet 图书馆管理系统
- java实现小型函数画图板(附源代码、
- 超级好的纯jsp写的聊天室
- 采用JAVA编写VORONOI图
- Java 透明按钮 Java透明按钮
- java图片轮播代码 可控制
- JavaEE图书管理系统95427
- android图片压缩工具类分享
- java web学生管理系统(源码+数据库+截
- wap魔界图文游戏
- mvc图书馆管理系统jsp
- 图书管理系统(源码+数据库+截图)
- Vue + SpringBoot + MyBatis 音乐网站(源码
- Vue项目实现手机端上传图片,使用于
- android实现谷歌地图项目
- android绘制心电图
- JavaSE图书馆管理系统
- Android开发的UI图标大全
- java web知识点总结思维导图
- java面试 思维导图
- Java基于jeeplus vue实现简单工作流过程
- java根据模板导出PDF详细教程(包含统
- Android图片上传头像裁切+原图原样
- java算法大全含源码包
- 简易C语言编译器Java源代码
评论
共有 条评论