91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-08
  • 語言: Java
  • 標簽: DFA??轉換??

資源簡介

JAVA實現的正則表達式轉換成DFA,并將DFA用Graph畫出,畫圖須安裝Graph。

資源截圖

代碼片段和文件信息

import?java.io.File;
import?java.util.*;
import?java.util.concurrent.linkedBlockingQueue;

public?class?DFA?{

????char[][]?g;
????int?size;
????int?sta;
????ArrayList?ends;//終態節點
????char?Njump;
????Set?M;
????Map?setMap;
????Set?setSet;
????ArrayList?edges;

????public?DFA(NFA?nfa)?{
????????g?=?nfa.getG();
????????size?=?nfa.getSize();
????????sta?=?nfa.getSta();
????????Njump?=?nfa.getNjump();
????????M?=?new?HashSet();
????????ArrayList?nedges?=?nfa.getEdges();
????????for?(Edge?edge?:?nedges)?{
????????????char?x?=?edge.getStr();
????????????if?(x?!=?Njump)
????????????????M.add(x);
????????}
????????setSet?=?new?HashSet();
????????setMap?=?new?HashMap();
????????setEdges();
????????setEnds(nfa.getEnd());


????}

????public?void?outSet()?{
????????for?(object?x?:?setSet)?{

????????????for?(object?i?:?(Set)?x)?{
????????????????System.out.print((int)?i?+?“?“);
????????????}
????????????System.out.println(“/“?+?setMap.get(x));
????????}
????}

????//x-m-set?//move(x,m)
????private?Set?move(Set?x?char?m)?{
????????Set?set?=?new?HashSet();
????????for?(object?i?:?x)?{
????????????for?(int?j?=?0;?j?????????????????if?(g[(int)?i][j]?==?m)?{
????????????????????set.add(j);
????????????????}
????????????}
????????}
????????return?set;
????}

????//ε-closure{x}->set
????private?Set?getClosure(Set?x)?{
????????Set?set?=?new?HashSet(x);
????????boolean?k?=?true;
????????while?(k)?{
????????????x?=?new?HashSet(set);
????????????k?=?false;
????????????for?(int?i?:?x)?{
????????????????set.add(i);
????????????????for?(int?j?=?0;?j?????????????????????if?(g[i][j]?==?Njump)?{
????????????????????????if?(set.add(j))
????????????????????????????k?=?true;
????????????????????}
????????????????}
????????????}
????????}
????????return?set;
????}

????private?Set?getClosure(int?x)?{
????????Set?set?=?new?HashSet();
????????set.add(x);

????????return?getClosure(set);
????}

????private?void?setEdges()?{
????????edges?=?new?ArrayList<>();
????????linkedBlockingQueue?setQueue?=?new?linkedBlockingQueue<>();
????????Set?set?=?getClosure(sta);
????????Integer?setN?=?0;
????????if?(setSet.add(set))?{
????????????setQueue.add(set);
????????????setN++;
????????????setMap.put(set?setN);//setMap?狀態集的集合
????????}
????????while?(!setQueue.isEmpty())?{
????????????Set?x?=?(Set)?setQueue.poll();
????????????for?(object?m?:?M)?{
????????????????Set?nx?=?getClosure(move(x?(char)?m));
????????????????if?((!nx.isEmpty())?&&?setSet.add(nx))?{//新增狀態集
????????????????????setQueue.add(nx);
????????????????????setN++;//狀態集個數
????????????????????setMap.put(nx?setN);
????????????????}
????????????????if?(!nx.isEmpty())?{
????????????????????//edges?狀態集間跳轉的邊集
????????????????????edges.add(new?Edge(setMap.get(x)?setMap.get(nx)?(char)?m));
????????????????}
????????????}
????????}
????}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????????0??2018-04-23?13:07??婧愪唬鐮?
?????文件????????4044??2018-01-07?21:03??婧愪唬鐮?DFA.java
?????文件????????2477??2018-01-07?19:45??婧愪唬鐮?Regex.java
?????文件????????4288??2018-01-07?20:35??婧愪唬鐮?NFA.java
?????目錄???????????0??2018-04-23?13:07??婧愪唬鐮?Graphoutput\
?????文件????????9642??2017-11-13?12:44??婧愪唬鐮?Graphoutput\GraphViz.java
?????文件?????????417??2017-11-13?15:58??婧愪唬鐮?G.java
?????文件?????????363??2018-01-07?21:31??婧愪唬鐮?Main.java
?????文件????????2176??2017-11-13?12:45??婧愪唬鐮?Proba.java
?????文件?????????931??2017-11-13?19:03??婧愪唬鐮?Edge.java

評論

共有 條評論