数据结构复习(重写某些重要数据结构API) ------------图
2015-03-24 23:23
295 查看
图结构以及它的一些基本操作:
/** * */ package 图; import java.util.Scanner; /** * @author Brighten_Yim * */ class GraphMatrix{//邻接矩阵 static final int Maxnum = 20;//最大点数 static final int Maxvalue = 65335;//无路径时的权值 char[] V = new char[Maxnum] ;//点 int[][] E = new int[Maxnum][Maxnum];//权值 int type ;//类型 0表示 无向图 1 表示 有向; int V_num;//点 数 int E_num;//边数 int[] isTraw = new int[Maxnum];//记录遍历 } public class Graph { static Scanner input = new Scanner(System.in); static void createGraph(GraphMatrix GM){//创建图 int i,j,k; int weight;//权值 char From,To; System.out.println("输入图的类型,0表示无向图,1表示有向图。"); GM.type = input.nextInt(); System.out.println("输入构成图的各个点:"); for(i = 0;i < GM.V_num ;i++){ System.out.printf("第%d个点为:",i+1); GM.V[i] = (input.next().toCharArray())[0]; } System.out.println("输入每条边的顶点以及权值:"); for(j = 0;j<GM.E_num;j++){ System.out.printf("第%d条边:",j+1); From = (input.next().toCharArray())[0]; To = (input.next().toCharArray())[0]; weight = input.nextInt(); for(i = 0;From!=GM.V[i];i++); for(k =0;To!=GM.V[k];k++); GM.E[i][j] = weight; if(GM.type==0){ GM.E[j][i] = GM.E[i][j]; } } } static void clearGraph(GraphMatrix GM){//清空图 for(int i= 0; i<GM.V_num;i++) for(int j = 0;j<GM.V_num;j++){ GM.E[i][j] = GM.Maxvalue; //将两个节点之间的 权值设置为 无路径时的权值,清空图; } } static void DeepTraOne(GraphMatrix GM, int n){//从n节点开始深度遍历 int i; GM.isTraw = 1;//设置为 1 表示已经历遍过该节点。 System.out.printf("->%c",GM.V ); for(i = 0; i<GM.V_num;i++){ if(GM.E [i]!=GraphMatrix.Maxvalue&&GM.isTraw[i]==0){ DeepTraOne(GM,i); } } } }
相关文章推荐
- 数据结构复习(重写某些重要数据结构API) ------------二叉树
- 数据结构复习(重写某些重要数据结构API) ------------队列
- 数据结构复习(重写某些重要数据结构API) ------------MySequentialList(顺序表)
- 数据结构复习(重写某些重要数据结构API) ------------栈
- 数据结构复习(重写某些重要数据结构API) ------------约瑟夫环
- Java数据结构--跟着api学数据结构--LinkedList
- javascript之复习(某些坑和函数)
- [数据结构复习]树_二叉搜索树&AVL树
- android出现注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 注: 某些输入文件使用了未经检查或不安全的操作。
- nodejs的某些api~(四)udp&dns
- 数据结构复习笔记— —队列
- 数据结构笔试面试复习要点
- 数据结构复习之散列表查找(哈希表)
- SPI驱动之子系统架构及重要数据结构
- linux -- input子系统重要的数据结构
- 思维导图复习强化数据结构(持续更新)
- Android复习练习九(SQLite使用API方式查询)
- Linux 内核网络协议栈 中最重要的数据结构 SKB
- web api control注册及重写DefaultHttpControllerSelector、ApiControllerActionSelector、ApiControllerActionInvoker(转)
- ansible 1.7.2 api 获取有某些应用的ip