天天看點

鄰接表法存儲圖c語言代碼,鄰接表存儲圖,DFS周遊圖的java代碼實作

鄰接表法存儲圖c語言代碼,鄰接表存儲圖,DFS周遊圖的java代碼實作

import java.util.*;

public class Main{

static int MAX_VERTEXNUM = 100;

static int [] visited = new int[MAX_VERTEXNUM];

public static void main(String [] args){

Graph G = new Graph();

creatGraph(G);

output(G);

for(int i=0;i

visited[i]=0;

System.out.println("DFS周遊的結果是:");

dfs(G,0);//從G.node_list[0]開始DFS周遊

}

static void creatGraph(Graph G){

Scanner in = new Scanner(System.in);

System.out.println("請輸入頂點數v和邊數e,(v e):");

G.vertex_num = in.nextInt();

G.edge_num= in.nextInt();

System.out.println("請輸入各頂點資訊:");

for(int i=0;i

G.node_list[i] = new VertexNode();

G.node_list[i].date = in.next();

G.node_list[i].first_edge = null; //很重要

}

System.out.println("請輸入各邊資訊(以空格隔開):");

for(int i=0;i

EdgeNode p = new EdgeNode();

String str1 = in.next();

String str2 = in.next();

int v1 = locateVex(G,str1);

int v2 = locateVex(G,str2);

p.vertex = v1;

p.next = G.node_list[v2].first_edge;

G.node_list[v2].first_edge = p;

EdgeNode q = new EdgeNode();//如果是有向圖,則不存在下面的代碼(上面的代碼的存儲順序可能有變化)

q.vertex = v2;

q.next = G.node_list[v1].first_edge;

G.node_list[v1].first_edge = q;

}

}

static int locateVex(Graph G,String s){

for(int i=0;i

if(G.node_list[i].date.equals(s))

return i;

}

return -1;

}

static void output(Graph G){

System.out.println("輸出鄰接表存儲情況:");

EdgeNode p = new EdgeNode();

for(int i=0;i

System.out.print(G.node_list[i].date);

p = G.node_list[i].first_edge;

while(p!=null){

System.out.print("->"+G.node_list[p.vertex].date);

p = p.next;

}

System.out.println();

}

}

static void dfs(Graph G,int k){

System.out.println(G.node_list[k].date);

visited[k]=1;

EdgeNode p = new EdgeNode();

p = G.node_list[k].first_edge;

while(p!=null){

if(visited[p.vertex]!=1)

dfs(G,p.vertex);

p = p.next;

}

}

}

//頂點存儲

class VertexNode{

String date;

EdgeNode first_edge = new EdgeNode();

}

//邊存儲

class EdgeNode{

int vertex;

EdgeNode next;

}

//圖存儲

class Graph{

VertexNode [] node_list = new VertexNode[100];

int vertex_num,edge_num;

}

//輸出結果:注意:(鄰接表的儲存順序與輸入邊的順序有關)

鄰接表法存儲圖c語言代碼,鄰接表存儲圖,DFS周遊圖的java代碼實作

資料結構(11) -- 鄰接表存儲圖的DFS和BFS

/// //圖的鄰接表表示法以及DFS和BFS ...

PTA 鄰接表存儲圖的廣度優先周遊(20 分)

6-2 鄰接表存儲圖的廣度優先周遊(20 分) 試實作鄰接表存儲圖的廣度優先周遊. 函數接口定義: void BFS ( LGraph Graph, Vertex S, void (*Visit)(V ...

PTA 鄰接表存儲圖的廣度優先周遊

試實作鄰接表存儲圖的廣度優先周遊. 函數接口定義: void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) ) 其中LGraph是鄰接表存儲的 ...

資料結構之---C語言實作圖的鄰接表存儲表示

// 圖的數組(鄰接矩陣)存儲表示 #include #include #include #defi ...

圖的鄰接表存儲表示(C)

//---------圖的鄰接表存儲表示------- #include #include #define MAX_VERTEXT_NUM ...

圖的鄰接表存儲 c實作

圖的鄰接表存儲 c實作 (轉載) 用到的資料結構是 一個是頂點表,包括頂點和指向下一個鄰接點的指針 一個是邊表, 資料結構跟頂點不同,存儲的是頂點的序号,和指向下一個的指針 剛開始的時候把頂點表初始化 ...

c++ 由無向圖構造鄰接表,實作深度優先周遊、廣度優先周遊。

#include #i ...

SDUT 2142 資料結構實驗之圖論二:基于鄰接表的廣度優先搜尋周遊

資料結構實驗之圖論二:基于鄰接表的廣度優先搜尋周遊 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Descript ...

DS實驗題 Old_Driver UnionFindSet結構 指針實作鄰接表存儲

題目見前文:DS實驗題 Old_Driver UnionFindSet結構 這裡使用鄰接表存儲敵人之間的關系,鄰接表用指針實作: // // main.cpp // Old_Driver3 // // ...

随機推薦

requerjs 合并 優化配置

/* * This is an example build file that demonstrates how to use the build system for * require.js. * ...

在IIS伺服器上部署svg/woff/woff2字型

在url沒錯的前提下,字型檔案報404錯誤,如.woff,.woff2 出錯原因: IIS不認SVG,WOFF/WOFF2這幾個檔案類型 解決方案: 在IIS伺服器上部署svg/woff/woff2字 ...

JQuery 定時器 (Jquery Timer 插件)

jQuery Timers插件位址: http://plugins.jquery.com/project/timers JQuery Timers應用知識提供了三個函式1. everyTime(時 ...

Dijkstra算法親自實踐

按路徑長度遞增次序産生算法: 把頂點集合V分成兩組: (1)S:已求出的頂點的集合(初始時隻含有源點V0) (2)V-S=T:尚未确定的頂點集合 将T中頂點按遞增的次序加入到S中,保證: (1)從源點 ...

CSU 1552: Friends 圖論比對+超級大素數判定

1552: Friends Time Limit: 3 Sec  Memory Limit: 256 MBSubmit: 163  Solved: 34[Submit][Status][Web Boa ...

BZOJ 1620: [Usaco2008 Nov]Time Management 時間管理

Description Ever the maturing businessman, Farmer John realizes that he must manage his time effecti ...

移動周報:十款最實用的Android UI設計工具

上一周可以說是一個不斷Mark周,從最實用的Android UI設計工具.免費移動應用測試架構推薦,到HTML5開發架構等等,各種開發工具.架構精彩豐呈,看得小夥伴們是不亦樂乎.當然,還有不容錯過的M ...

Volist标簽 key值的使用

Volist标簽是thinkphp架構view中常用到的一個标簽.主要用于在模闆中循環輸出資料集或者多元數組.今天使用key屬性時出了點問題,記錄一下. volist标簽(循環輸出資料) 閉合 非閉合 ...

HTML學習(七)表格

表格表格由

标簽定義).字母 td 指表格資料(ta ...

無法通路 ASP 相容性模式