package com.hexiang.utils.arrange; public class Arrange{ private int[] index;//用于存储需要全排列的数组的下标的成员变量。 private int n;//表示待排数组的元素个数。 private long numLeft;//用于存储剩余排列序列个数的成员变量。 private long total;//用于存储排列序列总数的成员变量。 public Arrange(int n){ this.n=n; reset(
/* * (有向)图的遍历算法模板 */ package dsa; public abstract class GraphTraverse { //常量 final static int UNDISCOVERED = 0;//尚未被发现的顶点 final static int DISCOVERED = 1;//已被发现的顶点 final static int VISITED = 2;//已访问过的顶点 final static int UNKNOWN = 0;//未知边 final stati
/* * 基于邻接边表实现图结构 */ package dsa; public class Graph_List implements Graph { //变量 protected List E;//容器:存放图中所有边 protected List V;//容器:存放图中所有顶点 //构造方法 public Graph_List() { E = new List_DLNode(); V = new List_DLNode(); } //取图的边表、顶点表 protected List get
/* * 基于列表实现的元素迭代器 */ package dsa; public class IteratorElement implements Iterator { private List list;//列表 private Position nextPosition;//当前(下一个)元素的位置 //默认构造方法 public IteratorElement() { list = null; } //构造方法 public IteratorElement(List L) { list
/* * 基于邻接边表实现图结构 */ package dsa; public class Graph_List implements Graph { //变量 protected List E;//容器:存放图中所有边 protected List V;//容器:存放图中所有顶点 //构造方法 public Graph_List() { E = new List_DLNode(); V = new List_DLNode(); } //取图的边表、顶点表 protected List get