Вы находитесь на странице: 1из 22

POO

camo681201@gmail.com Caballero Martnez Oscar Gabriel

Operadores 2. parte
public class Operadores { Pila pilaOperadores = new Pila(); Pila pilaOperandos = new Pila(); private int prioridad(char c){ switch(c){ case '+': case '-': return 0; case 'x': case '/': case 'm': return 1; case 'p': return 2; default : return 99; } }

Operadores 2 parte
private int opera(int v1, int v2, char c){ int res=0; switch(c){ case '+': res = (v1+v2); break; case '-': res = (v1-v2); break; case 'x': res = (v1*v2); break;

Operadores 2 parte
case '/': res = (v1/v2); break; case 'm': res = (v1%v2); break; case 'p': res = ((int) Math.pow(v1, v2)); break; } return res; }

Operadores 2 parte
private void trabajar(String []args){ int val1,val2; if(args.length%2!=0){ for(int i=0;i<args.length;i++){ if(prioridad(args[i].charAt(0))==99){ pilaOperandos.mete(args[i]); }

Operadores 2 parte
else{
if(pilaOperadores.esVacia()){ pilaOperadores.mete(args[i]); } else{ while(!pilaOperadores.esVacia() && prioridad(args[i].charAt(0))<=prioridad(pilaOperadores.esTope().charAt(0))){ val2 = Integer.parseInt(pilaOperandos.saca()); val1 = Integer.parseInt(pilaOperandos.saca()); val1 = opera (val1,val2,pilaOperadores.saca().charAt(0)); pilaOperandos.mete(Integer.toString(val1)); }

Operadores 2 parte
pilaOperadores.mete(args[i]); } } } while(!pilaOperadores.esVacia()){ val2 = Integer.parseInt(pilaOperandos.saca()); val1 = Integer.parseInt(pilaOperandos.saca()); val1 = opera(val1,val2,pilaOperadores.saca().charAt(0)); pilaOperandos.mete(Integer.toString(val1)); }

Operadores 2 parte
System.out.println("Total " + pilaOperandos.saca()); } } public static void main(String []args){ Operadores op = new Operadores(); op.trabajar(args); } }

Operadores con rbol Binario


public class NodoArbol { private String val; public NodoArbol hijoIzquierdo, hijoDerecho;
public NodoArbol(String v){ val = v; hijoIzquierdo = hijoDerecho = null; }

Operadores con rbol Binario


public void escribe(){ System.out.print(val + " "); }
public String traeValor(){ return val; }

Operadores con rbol Binario


public class Arbol { public NodoArbol raiz;
public Arbol(){ raiz = null; }

Operadores con rbol Binario


private NodoArbol creaLista2(NodoArbol r, NodoArbol m){ NodoArbol aux = r; if(r==null){ r=m; }

Operadores con rbol Binario


else{
while(aux.hijoDerecho!=null){ aux = aux.hijoDerecho; } aux.hijoDerecho = m; m.hijoIzquierdo = aux; } return r; }

Operadores con rbol Binario


private int prioridad(char c){ switch(c){ case '+': case '-': return 0; case 'x': case '/': case 'm': return 1; case 'p': return 2; default : return 99; } }

Operadores con rbol Binario


private NodoArbol lista2Arbol(NodoArbol r){ NodoArbol aux = r; while(aux.hijoDerecho != null){ aux = aux.hijoDerecho; } while(aux != null){ if(prioridad(aux.val.charAt(0))<prioridad(r.val.charAt(0))){ r = aux; } aux = aux.hijoIzquierdo; }

Operadores con rbol Binario


if(r.hijoIzquierdo != null){ r.hijoIzquierdo.hijoDerecho = null; r.hijoIzquierdo = lista2Arbol(r.hijoIzquierdo); } if(r.hijoDerecho != null){ r.hijoDerecho.hijoIzquierdo = null; r.hijoDerecho = lista2Arbol(r.hijoDerecho); } return r; }

Operadores con rbol Binario


private void recorridoPreOrden(NodoArbol p){ if(p != null){ p.escribe(); recorridoPreOrden(p.hijoIzquierdo); recorridoPreOrden(p.hijoDerecho); } }

Operadores con rbol Binario


private void recorridoPosOrden(NodoArbol p){ if(p != null){ recorridoPosOrden(p.hijoIzquierdo); recorridoPosOrden(p.hijoDerecho); p.escribe(); } }

Operadores con rbol Binario


private void recorridoInOrden(NodoArbol p){ if(p != null){ recorridoInOrden(p.hijoIzquierdo); p.escribe(); recorridoInOrden(p.hijoDerecho); } }

Operadores con rbol Binario


private void trabaja(String []args){ NodoArbol nuevo; if(args.length>0 && args.length%2 != 0){ for(int i=0;i<args.length;i++){ nuevo = new NodoArbol(args[i]); raiz = creaLista2(raiz, nuevo); }

Operadores con rbol Binario


raiz = lista2Arbol(raiz); recorridoInOrden(raiz); System.out.println(); recorridoPreOrden(raiz); System.out.println(); recorridoPosOrden(raiz); System.out.println(); } }

Operadores con rbol Binario


public static void main(String []args){ Arbol miArbol = new Arbol(); miArbol.trabaja(args); }
}

Похожие интересы