第五周作业——有向图邻接表表示及反向图构造
来源:互联网 发布:福建广电网络宽带帐号 编辑:程序博客网 时间:2024/06/06 18:01
1. 有向图中反向图构造。对tinyDG.txt(http://pan.baidu.com/s/1o6jWtcA)文件所表示的图,输出其邻接表表示 与 反向图的邻接表表示。类名:GraphReverse。
邻接表表示示例如下:
0:1 5
1:
2:0 3
……
====
package alsys5_1;import java.io.*;import java.util.*;public class GraphReverse {private int vertex;//有向图顶点private int edge;//有向图边private boolean visited[];private List<ArrayList<Integer>> graphListS;//有向图private List<ArrayList<Integer>> graphListF;//有向图的反向图//构造函数public GraphReverse(int vertex,int edge,List<ArrayList<Integer>> graphListS,List<ArrayList<Integer>> graphListF){this.vertex=vertex;visited=new boolean[vertex];this.graphListS=graphListS;this.graphListF=graphListF;}//广度优先遍历生成邻接表private void BFS(int v,List<ArrayList<Integer>> graphList){Queue<Integer> que=new LinkedList<Integer>();//导入数组队列que.offer(v);//插入顶点while(!que.isEmpty()){v=que.poll();//检索队列System.out.print(v+":");//邻接表visited[v]=true;for(int i=0;i<graphList.get(v).size();i++){int k=graphList.get(v).get(i);System.out.print(k+" ");if(!visited[k]){que.offer(k);visited[k]=true;}}System.out.println();}}public static void main(String[] args){String path="e:/tinyDG.txt";try{Scanner scanner=new Scanner(new File(path));List<ArrayList<Integer>> graphListS=new ArrayList<ArrayList<Integer>>();//有向图的存储List<ArrayList<Integer>> graphListF=new ArrayList<ArrayList<Integer>>();//有向图的反向图的存储int vertex=scanner.nextInt();int edge=scanner.nextInt();//有向图构造for(int i=0;i<vertex;i++){graphListS.add(new ArrayList<Integer>());graphListF.add(new ArrayList<Integer>());}//有向图的反向图构造for(int i=0;i<edge;i++){int u=scanner.nextInt();int v=scanner.nextInt();if(!graphListS.get(u).contains(v)){graphListS.get(u).add(v);}if(!graphListF.get(v).contains(u)){graphListF.get(v).add(u);}}GraphReverse g1=new GraphReverse(vertex,edge,graphListS,null);System.out.println("有向图的邻接表的结果是: ");g1.BFS(vertex/2+1,graphListS);GraphReverse g2=new GraphReverse(vertex,edge,null,graphListF);System.out.println("有向图的反向图的邻接表结果是 : ");g2.BFS(1,graphListF);}catch(Exception e){e.printStackTrace();}}}====
0 0
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造(GraphReverse)
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——1有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- hdu 1025 Constructing Roads In JGShining's Kingdom (LIS)
- In order to understand C++
- Android漫游记(2)---ELF可执行文件格式
- 黑马程序员——C语言的冒泡排序
- In previous chapters,
- 第五周作业——有向图邻接表表示及反向图构造
- js对象属性
- VS2008让项目中的自定义控件编译后自动添加到工具箱中
- International Organization
- ubuntu 12.04编译MTK6582——FAQ
- 第六周作业1——利用哈夫曼编码英文字母表
- ios 正则表达式
- 系统相机的调用(只能真机试验)
- 第7周作业1——背包问题