From 75083921a07e6351cb9e32e025fa40f621071e3d Mon Sep 17 00:00:00 2001 From: carlos Date: Wed, 28 Jun 2017 14:09:44 +0000 Subject: [PATCH] Implementados metodos para reorganizar los estados en un ArrayList de Estados y a su vez los enlaces en un ArrayList de enlaces (Lista de adyacencia) --- src/mt/Automata.java | 98 ++++++++++++++++++++++++ src/mt/LeerXML.java | 12 ++- src/mt/MT.java | 18 ++--- src/mt/{Controller.java => Machine.java} | 7 +- xmltest/TuringIgual0sIgual1s.xml | 95 +++++++++++++++++++++++ 5 files changed, 215 insertions(+), 15 deletions(-) create mode 100644 src/mt/Automata.java rename src/mt/{Controller.java => Machine.java} (69%) create mode 100644 xmltest/TuringIgual0sIgual1s.xml diff --git a/src/mt/Automata.java b/src/mt/Automata.java new file mode 100644 index 0000000..ed610ab --- /dev/null +++ b/src/mt/Automata.java @@ -0,0 +1,98 @@ +package mt; + +import org.w3c.dom.Document; + +import java.util.ArrayList; + +class Enlace{ + char si; + char sj; + char movimiento; + Estado qj; + + public Enlace(char si,Estado qj,char sj, char move){ + setMovimiento(move); + setSj(sj); + setQj(qj); + setSi(si); + } + + private void setSi(char si){ + this.si = si; + } + + private void setSj(char sj){ + this.sj = sj; + } + + private void setMovimiento(char movimiento){ + this.movimiento = movimiento; + } + + private void setQj(Estado qj){ + this.qj = qj; + } + + @Override + public String toString(){ + return ","+si+") = (q"+qj.q+","+sj+","+movimiento+")"; + } +} + +class Estado{ + int q; + ArrayList link; + + public Estado(int q) { + this.q = q; + link = new ArrayList(); + } + + public boolean createLink(char si,Estado qj,char sj, char move){ + if(link.isEmpty()) link.add(new Enlace(si,qj,sj,move)); + for(int i=0;i estados; + public Automata(Document document){ + estados = new ArrayList(); + Estado aux; + for(int i=0;i + + + + 0 + 0 + 1 + X + R + + + 1 + 0 + 1 + 0 + R + + + 1 + Y + 1 + Y + R + + + 1 + 1 + 2 + Y + R + + + 2 + X + 0 + X + R + + + 2 + 0 + 2 + 0 + L + + + 2 + # + 3 + # + L + + + 2 + 1 + 2 + 1 + L + + + 2 + Y + 2 + Y + L + + + 3 + Y + 3 + Y + L + + + 3 + X + 4 + X + L + + + 4 + X + 4 + X + L + + + 4 + # + 5 + # + R + +