/*************************************************************/ /* */ /* Implementation for variable automata */ /* */ /*************************************************************/ /* Finite state machines Variable size Dan Ashlock 12/20/00 Modified to work with DNA 6/20/01 */ #include #include #include #include #include "vaut.h" aut::aut(){//creates a completely empty automata n=0; states=(state *)0; } aut::aut(int nv){//calls the create method to //allocate a random n-state automata n=0; states=(state *)0; create(nv); } aut::aut(const aut &b){//copy constructor int i,j; n=b.n; states=new state[n]; n=b.n; inita=b.inita; inits=b.inits; for(i=0;i" << inits << endl; aus << " "; for(i=0;i"; aus.width(2);aus << states[i].tran[j]; if(j" << m.inits << endl; aus << " "; for(i=0;i"; aus.width(2);aus << m.states[i].tran[j]; if(j>(istream & aus,aut & m){ int i,j,k,nv; char inp[256]; aus.getline(inp,255); aus.getline(inp,255); i=0; while((!isdigit(inp[i]))&&(i=strlen(inp))return(aus); //hopeless, give up nv=atoi(inp+i); //cout << nv << endl; m.create(nv); aus.getline(inp,255); i=0; while((inp[i]!=':')&&(icp2){ sw=cp1; cp1=cp2; cp2=sw; } for(i=cp1;i