MOISES_QUISPE_ROJAS

Estructura Datos 2021 - EJERCICIO 2 PROBAR STACK CON LISTA ENLAZADA

Oct 27th, 2021
1,563
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Estructura de Datos - Facultad de Ingenieria - Universidad Nacional de Jujuy
  2.  *
  3.  * @Autor: Equipo 5.1
  4.  */
  5.  
  6. /*      @integrantes:                  |    @Carrera:             |   @LU:
  7.                                        |                          |
  8.   Flores ,Cesar Ismael                 | Lic. en Sistemas         | 1782
  9.   Llampa, Ariel Angel Gabriel          | Ing. Informatica         | 8445
  10.   Machaca, Rodrigo Agustin             | Ing. Informatica         | 8512
  11.   Perez, Emanuel Ismael                | Ing. Informatica         | 8393
  12.   Quispe Rojas, Moises Esteban Nicolas | Ing. Informatica         | 7286
  13.  
  14. Escribir un programa que permita verificar la parentización múltiple de una expresión matemática; se dice
  15. parentización múltiple porque se utilizan varios símbolos que deben emparejarse; en este caso los símbolos
  16. de apertura son: “(”, “[” y “{”; los símbolos de cierre son: “)”, “]” y “}” respectivamente. Para la resolución
  17. del ejercicio se debe utilizar la implementación que el lenguaje de programación facilita.
  18.  
  19. */
  20.  
  21. package List;
  22.  
  23.  
  24. public class ED_E2_TPStack {
  25.     private Stack<Character> stack = new Stack<Character>();
  26.    
  27.     public static void main(String[] args) {
  28.         (new ED_E2_TPStack()).open();        
  29.     }
  30.    
  31.     public void open(){
  32.         System.out.println("Ingrese una expresion matematica");
  33.         String cadena = Helpert.getString();
  34.         if(checkParentheses(cadena)& checkBrackets(cadena) & checkKeys(cadena)){
  35.             System.out.println("La expresion esta bien parentisada");
  36.         }else{
  37.             System.out.println("La expresion no esta bien  parentizada");
  38.         }
  39.     }
  40.    
  41.     public boolean checkParentheses(String cadena){
  42.         char c;
  43.         for (int i = 0; i < cadena.length(); i++) {
  44.             c=cadena.charAt(i);
  45.             if(c=='('){
  46.                 getStack().push(c);
  47.                
  48.             }else{
  49.                 if(c==')'){
  50.                     if(!getStack().empty()){
  51.                         getStack().pop();
  52.                     }else{
  53.                         return false;
  54.                     }
  55.                 }
  56.             }
  57.         }
  58.         return getStack().size()==0;
  59.     }
  60.    
  61.     public boolean checkBrackets(String cadena){
  62.         char c;
  63.         for (int i = 0; i < cadena.length(); i++) {
  64.             c=cadena.charAt(i);
  65.             if(c=='['){
  66.                 getStack().push(c);
  67.             }else{
  68.                 if(c==']'){
  69.                     if(!getStack().empty()){
  70.                         getStack().pop();
  71.                     }else{
  72.                         return false;
  73.                     }
  74.                 }
  75.             }
  76.         }
  77.         return getStack().size()==0;
  78.     }
  79.    
  80.     public boolean checkKeys(String cadena){
  81.         char c;
  82.         for (int i = 0; i < cadena.length(); i++) {
  83.             c=cadena.charAt(i);
  84.             if(c=='{'){
  85.                 getStack().push(c);
  86.             }else{
  87.                 if(c=='}'){
  88.                     if(!getStack().empty()){
  89.                         getStack().pop();
  90.                     }else{
  91.                         return false;
  92.                     }
  93.                 }
  94.             }
  95.         }
  96.         return getStack().size()==0;
  97.     }
  98.  
  99.     public Stack<Character> getStack() {
  100.         return stack;
  101.     }
  102.  
  103.     public void setStack(Stack<Character> stack) {
  104.         this.stack = stack;
  105.     }
  106.  
  107.        
  108. }
  109.  
RAW Paste Data