def palindromoPilha(array): auxA = [] auxB = [] if pilha.isEmpty(array): print("String vazia") else: print("\n*************** teste de palíndromo ***************") print('Verificar: ' + array) # Remover acentos array = unidecode(array) # Deixar letras minúsculas, pois evita erro de comparação array = array.lower() # Verificar se contém espaço e remover if " " in array: array = array.replace(" ", "") loop = ((pilha.size(array)) - 1) for i in range(loop, -1, -1): auxA = pilha.push(array[i], auxA) auxB = pilha.push(array[loop - i], auxB) if auxA == auxB: print("Teste Verdadeiro") return True else: print("Teste Falso") return False
def fpDequeue(array): arrayAux = [] for i in range(1, len(array)): pilha.push(array[i], arrayAux) return arrayAux
def fpQueue(value, array): array = pilha.push(value, array) return array
import pilha as pilha import fila as fila import deque as deque import fila_pilha as filapilha from palindromo_pilha import palindromoPilha from palindromo_deque import palindromoDeque # Funções Pilha print("********** Funções de Pilha **********") # Push – insere um elemento na pilha a = [] a = pilha.push('a', a) print("Pilha push: {}".format(a)) a = pilha.push('b', a) print("Pilha push: {}".format(a)) a = pilha.push('c', a) print("Pilha push: {}".format(a)) # Pop – remove um elemento da pilha a = pilha.pop(a) print("Pilha pop: {}".format(a)) # Top – retorna o elemento no topo da pilha, sem removê-lo print("Pilha top: {}".format(pilha.top(a))) # isEmpty – verifica se a pilha está vazia ou não print("Pilha isEmpty: {}".format(pilha.isEmpty(a))) # size – retorna o número de elementos na pilha print("Pilha size: {}".format(pilha.size(a)))
tabelaGeral = file.readlines() del fila[0] fila.append("$") pilha = pilha.Stack("<INICIO_FIM>") cont = 0 print("INICIO\n\n") while fila: top = pilha.pop() if top.isupper() == True: processo = transicao(top, fila[0]) if processo == "error": print("ERRO") print(f"linha:{tabelaGeral[cont].split('|')[2]} coluna:{tabelaGeral[cont].split('|')[3]}") break i = len(step(processo).split("|")) - 1 while i >= 1: if step(processo).split("|")[i] != "î": pilha.push(step(processo).split("|")[i]) i -= 1 elif top == fila[0]: print(f"#{top} = {fila[0]}#") del fila[0] cont += 1 print("Sem erros Sintaticos") if not fila and pilha.isEmpty() else print("Erro pilha ou fila nao estao vazias")