Com o objetivo de ter uma resposta auto-contida será implementada uma pilha e em seguida implementada a solução para a pergunta.
Assim, uma possível implementação da solução em Python é a seguinte:
# Implementando pilha
## Definindo exceção
class Empty(Exception):
"""Erro ao tentar acessar uma lista vazia."""
pass
## Usando classe para implementar pilha
class ArrayStack:
'''
Implementação de uma pilha usando listas.
'''
def __init__(self):
'''Criando uma pilha vazia.'''
self.__data = []
def __len__(self):
'''Retorna número de elementos da pilha.'''
return len(self.__data)
def is_empty(self):
'''Checa se a pilha está vazia.'''
return len(self.__data) == 0
def push(self, e):
'''Adiciona um elemento ao topo da lista.'''
self.__data.append(e)
def top(self):
'''Retorna (mas, não remove) elemento no top da pilha'''
if self.is_empty(): # Caso a pilha esteja vazia
raise Empty('Pilha está vazia')
return self.__data[-1]
def pop(self):
'''Remove e retorna elemento do topo da pilha'''
if self.is_empty():
raise Empty('Pilha vazia')
return self.__data.pop()
# Implementação da solução
def maior_num(st):
x = st.pop()
if x > st.top():
return x
else:
x = st.top()
return x
if __name__ == '__main__':
s = ArrayStack()
s.push(3)
s.push(5)
s.push(2)
print(maior_num(s))