package sample;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;/*** Dfa 状态** @author liufengkai* Created by liufengkai on 16/7/10.*/public class DfaState implements Comparable<DfaState> {private static int DFA_ID_COUNT = 0;/*** state id*/private int stateId;/*** transition set* char / set of dfaState*/private Map<Integer, DfaState> transitionSet;private DfaState parentState;private Integer parentInput;/*** 构造方法** @param input 输入串* @param parentState 父节点*/public DfaState(Integer input, DfaState parentState) {this.parentInput = input;this.parentState = parentState;this.stateId = DFA_ID_COUNT++;this.transitionSet = new HashMap<>();}/*** 添加一条转移语句** @param input 输入字符* @param state 下一个状态* @return 返回添加状态*/public DfaState addTransition(int input, DfaState state) {if (!transitionSet.containsKey(input)) {transitionSet.put(input, state);}return state;}public DfaState getTransitionInput(int input) {return getTransitionSet().get(input);}public int getStateId() {return stateId;}public static int getTotalNumber() {return DFA_ID_COUNT;}public Map<Integer, DfaState> getTransitionSet() {return transitionSet;}public DfaState getParentState() {return parentState;}@Overridepublic int compareTo(DfaState o) {return 0;}public int getParentInput() {return parentInput;}/*** 打印状态*/public void printState() {System.out.println("state : " + getStateId());for (Integer integer : transitionSet.keySet()) {System.out.println("symbol: " +(char) integer.intValue() + " to :" +transitionSet.get(integer).getStateId());transitionSet.get(integer).printState();}}/*** 返回结束状态** @param list 传入结束状态*/public void returnEndList(ArrayList<DfaState> list) {for (Integer key : transitionSet.keySet()) {DfaState cur = transitionSet.get(key);if (cur.getTransitionSet().isEmpty()) {list.add(cur);} else {cur.returnEndList(list);}}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。