1 / 10

3.2 Pilas

3.2 Pilas. Lic. En C.C. Ann Margareth Meza Rodríguez. Una pila es un contenedor de objetos que son insertados y eliminados de acuerdo con el principio de que el último en entrar es el primero en salir. a n. También se les denomina estructuras LIFO ( Last In First Out ). …. a 2. a 1.

tal
Download Presentation

3.2 Pilas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3.2 Pilas Lic. En C.C. Ann Margareth Meza Rodríguez

  2. Una pila es un contenedor de objetos que son insertados y eliminados de acuerdo con el principio de que el último en entrar es el primero en salir. an También se les denomina estructuras LIFO (Last In FirstOut). … a2 a1

  3. Las operaciones básicas en una pila son push y pop Push permite insertar un elemento a la pila Pop extrae un elemento de la pila

  4. Operaciones Crear: se crea la pila vacía (size). Apilar: se añade un elemento a la pila.(push) Des apilar: se elimina el elemento frontal de la pila.(pop) Cima: devuelve el elemento que esta en la cima de la pila. (top o peek) Vacía: devuelve cierto si la pila está vacía o falso en caso contrario (empty).

  5. OPERACIONES PÚBLICAS // voidpush(x) ->Inserta x // voidpop() ->Elimina el último elemento insertado // Objecttope() ->Devuelve el último elemento insertado // booleanesVacia() ->Devuelve true si vacía, sino false // voidempty() ->Elimina todos los elementos // ERRORES: cima o des apilar sobre la pila vacía

  6. Algoritmo para checar paréntesis Algoritmo para checar paréntesis. La expresión se almacena en la cadena S. 1. VALIDO = VERDADERO 2. i = 1 3. CONTADOR = 0 4. MIENTRAS VALIDO AND i <= LONGITUD(S) HACER 5. SI S[i] = '(' ENTONCES 6. CONTADOR = CONTADOR + 1 7. SINO 8. SI S[i] = ')' ENTONCES 9. CONTADOR = CONTADOR - 1 10. SI CONTADOR < 0 ENTONCES 11. VALIDO = FALSO 12. i = i + 1 13. SI CONTADOR <> 0 ENTONCES 14. VALIDO = FALSO

  7. Algoritmo para checar expresiones con paréntesis bien construidas. Se utiliza una pila P. La cadena se almacena en una variable S. 1. VALIDO = VERDADERO 2. i = 1 3. MIENTRAS VALIDO AND i <= LONGITUD(S) 4. SI (S[i] = '(') OR (S[i] = '[') OR (S[I] = '{') ENTONCES 5. PUSH(P,S[i]) 6. SINO 7. SI (S[i] = ')') OR SI (S[i] = ']') OR SI (S[i] = '}') ENTONCES 8. SI EMPTY(P) ENTONCES 9. VALIDO = FALSO 10. SINO 11. C = POP(P) 12. SI NOT((C='(' AND S[i] = ')')OR(C='[' AND S[i] =']') OR (C='{' AND S[i]= '}')) ENTONCES 13. VALIDO = FALSO 14. i = i + 1 15. SI NOT EMPTY(P) ENTONCES 16. VALIDO = FALSO

  8. Representación Una pila puede representarse con un registro, uno de los campos es un entero usado como apuntador de pila y el otro campo es un arreglo lineal de elementos de la pila. S.TOPE = apuntador de pila. S.ITEM[S.TOPE] = elemento de la cima de la pila

  9. NOTA: Se supone una pila de caracteres Función EMPTY(S:PILA) regresa BOOLEANO 1. SI S.TOPE = 0 ENTONCES 2. REGRESA VERDADERO 3. SINO 4. REGRESA FALSO Función POP(S:PILA) regresa CARÁCTER 1. X ¬ S.ITEM[S.TOPE] 2. S.TOPE ¬ S.TOPE - 1 3. REGRESA X

More Related