91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

數(shù)據(jù)結(jié)構(gòu) 圖 (鄰接矩陣) java圖形界面 實(shí)現(xiàn) 圖的深度優(yōu)先遍歷算法 廣度遍歷算法 刪除增加頂點(diǎn)等

資源截圖

代碼片段和文件信息

//數(shù)據(jù)結(jié)構(gòu):圖遍歷程序
import?java.util.*;
import?java.awt.*;
import?javax.swing.*;
import?java.awt.event.*;
class?MGraph
{

????private?boolean[]?visited;?//是否遍歷過

????private?int[][]?graph;?//二維數(shù)組圖

????public?linkedList?vertex?=?new?linkedList();???//定義鏈表來存儲圖的頂點(diǎn)

????public?MGraph()
????{
vertex.clear();
visited?=?new?boolean[10];
graph?=?new?int[10][10];
for(int?i?=?0;?i? {
???? visited[i]?=?false;
???? for(int?j?=?0;?j? {
graph[i][j]?=?0;
????????????}
}

????}
????public?void?initGraph()??//構(gòu)造默認(rèn)圖
????{
vertex.clear();??????//清空鏈表
???? vertex.addLast(“A“);
vertex.addLast(“B“);
vertex.addLast(“C“);
vertex.addLast(“D“);
vertex.addLast(“E“);

this.Delvisited();

????????//把有邊的設(shè)為1
????????graph[0][1]?=?1;graph[1][0]?=?1;?//點(diǎn)1-2
????????graph[0][4]?=?1;graph[4][0]?=?1;?//點(diǎn)1-5
????????graph[1][2]?=?1;graph[2][1]?=?1;?//點(diǎn)2-3
????????graph[1][3]?=?1;graph[3][1]?=?1;?//點(diǎn)2-4
????????graph[2][4]?=?1;graph[4][2]?=?1;?//點(diǎn)3-5

????}

????public?void?Delvisited()???//初始化遍歷數(shù)組
????{
???? for(int?i?=?0;?i????? visited[i]?=?false;

????}
/*
????public?String?GetVex(int?i)???//取圖中第i個頂點(diǎn)的數(shù)據(jù)信息
????{
return?vertex.get(i);
}
*/

public?void?PutVex(int?iString?value)??//將圖中第i個頂點(diǎn)的數(shù)據(jù)域置為value
{
vertex.set(ivalue);
}

public?void?AddVex(String?value)??//在圖中加入一個頂點(diǎn)值為value
{
vertex.addLast(value);
}

public?void?ShowVex()
{
for(int?i=0;i {
System.out.print(“頂點(diǎn)“+(i+1)+“:?“+vertex.get(i));
GraphGui.textarea1.append(“頂點(diǎn)“+(i+1)+“:?“+vertex.get(i)+“?“);
}
}

public?void?DeleteVex(int?x)???//刪除圖中第x個頂點(diǎn)
{
vertex.remove(x);???????????//刪除一個頂點(diǎn)后,注意vertex.size()已經(jīng)減少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)??//在圖中插入一條邊,其依附的兩個頂點(diǎn)的編號為i和j
{
graph[i][j]?=?1;
}

public?void?DeleteArc(int?iint?j)??//在圖中刪除一條邊,其依附的兩個頂點(diǎn)的編號為i和j
{
graph[i][j]?=?0;
}

????public?void?DFSTraverse(int?x)???????????//深度優(yōu)先遍歷圖
????{
System.out.print(vertex.get(x)+“?“);???//訪問頂點(diǎn)
GraphGui.textarea2.append(vertex.get(x)+“?“);
visited[x]?=?true;?????????????????//標(biāo)記為已訪問過

????????for(int?i?=?0;?i?????????{
????????????if(graph[x][i]?==?1?&&?visited[i]?==?false)?//如果有邊而又未被訪問過
????????????{
????????????????DFSTraverse(i);??????????//遞歸遍歷點(diǎn)
????????????}
????????}
????}

????public?void?BFSTraverse(int?v)???????????//廣度優(yōu)先遍歷圖
????{
???? Queue?queue=new?Queue();??//初始化隊(duì)列
???? System.out.print(vertex.get(v)+“?“);???//訪問頂點(diǎn)
???? GraphGui.textarea2.append(vertex.get(v)+“?“);
???? visited[v]?=?true;
???? queue.EnQueue(v);?????????????????????//當(dāng)前訪問的頂點(diǎn)的編號入隊(duì)
???? while(queue.is

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????9753??2011-05-29?18:30??GraphGui.java

-----------?---------??----------?-----??----

?????????????????9753????????????????????1


評論

共有 條評論