Você está aqui: Python ::: Estruturas de Dados ::: Lista Ligada Simples |
Como excluir um nó no início de uma lista singularmente encadeada em PythonQuantidade de visualizações: 703 vezes |
Nesta dica mostrarei como podemos escrever um método remover_inicio() que remove e retorna o nó no início de uma lista encadeada simples em Python. É importante observar que o método exclui o primeiro nó e o retorna completo, inclui o valor que está incluído nele. Se a lista estiver vazia o método retorna o valor None para indicar lista vazia. Vamos começar então com o código para a classe No da lista singularmente ligada (que salvei em um arquivo no_lista_singularmente_ligada.py): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # classe No para uma lista singularmente encadeada ou # ligada - Singly Linked List class No: # construtor da classe No def __init__(self, info, proximo): self.info = info self.proximo = proximo # método que permite definir o conteúdo do nó def set_info(self, info): self.info = info # método que permite obter a informação de um nó def get_info(self): return self.info # método que permite definir o campo próximo deste nó def set_proximo(self, proximo): self.proximo = proximo # método que permite obter o campo próximo deste nó def get_proximo(self): return self.proximo # retorna True se este nó apontar para outro nó def possui_proximo(self): return self.proximo != None Veja que o código para a classe Nó não possui muitas firulas. Temos apenas um campo info, que guardará o valor do nó, e um campo próximo, que aponta para o próximo nó da lista, ou null, se este for o único nó ou o último nó da lista ligada. Veja agora o código para a classe ListaLigadaSimples (lista_ligada_simples.py), com os métodos inserir_inicio(), remover_inicio() e exibir(): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importa a classe No from no_lista_singularmente_ligada import No # classe ListaLigadaSimples class ListaLigadaSimples: # construtor da classe def __init__(self): self.inicio = None # nó inicial da lista # método que deleta um nó no início de uma lista ligada # este método retorna o nó excluído def remover_inicio(self): # a lista está vazia? if self.inicio == None: return None else: # vamos excluir e retornar o primeiro nó da lista removido = self.inicio # a lista possui apenas um nó? if self.inicio.get_proximo() == None: # a lista agora ficará vazia self.inicio = None else: # o segundo nó passa a ser o início da lista self.inicio = self.inicio.get_proximo() # retorna o nó removido return removido # método que permite inserir um novo nó no início da lista def inserir_inicio(self, info): # cria um novo nó contendo a informação e que # não aponta para nenhum outro nó novo_no = No(info, None) # a lista ainda está vazia? if self.inicio == None: # o novo nó será o início da lista self.inicio = novo_no else: # o novo nó aponta para o início da lista novo_no.set_proximo(self.inicio) # o novo nó passa a ser o início da lista self.inicio = novo_no # método que permite exibir todos os nós da lista # ligada simples (lista singularmente encadeada) def exibir(self): # aponta para o início da lista no_atual = self.inicio # enquanto o nó não for nulo while no_atual != None: # exibe o conteúdo do nó atual print(no_atual.get_info()) # pula para o próximo nó no_atual = no_atual.get_proximo() E agora o código main() que insere alguns valores no início da nossa lista singularmente encadeada e testa o método remover_inicio(): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importa a classe ListaLigadaSimples from lista_singularmente_ligada import ListaLigadaSimples # método principal def main(): # cria uma nova lista encadeada simples lista = ListaLigadaSimples() print("Insere o valor 12 no início da lista") lista.inserir_inicio(12) print("Conteúdo da lista: ") lista.exibir() print("Insere o valor 30 no início da lista") lista.inserir_inicio(30) print("Conteúdo da lista: ") lista.exibir() print("Remove um nó no início da lista") removido = lista.remover_inicio() if removido == None: print("Não foi possível remover. Lista vazia") else: print("Nó removido:", removido.get_info()) print("Conteúdo da lista: ") lista.exibir() if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: c:\estudos_python>python estudos.py Insere o valor 12 no início da lista Conteúdo da lista: 12 Insere o valor 30 no início da lista Conteúdo da lista: 30 12 Remove um nó no início da lista Nó removido: 30 Conteúdo da lista: 12 |
Link para compartilhar na Internet ou com seus amigos: |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercícios Resolvidos de Python - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em PythonQuantidade de visualizações: 670 vezes |
Pergunta/Tarefa: Escreva um programa Python que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10(). Sua saída deverá ser parecida com: Informe um número inteiro: 48763 A soma do primeiro e do último dígito é: 7 Veja a resolução comentada deste exercício usando Python: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # vamos importar o módulo Math import math # método principal def main(): # vamos pedir para o usuário informar um número inteiro numero = int(input("Informe um número inteiro: ")) # vamos obter a quantidade (-1) de dígitos no número informado quant = int(math.log10(numero)) primeiro_digito = (int)(numero / pow(10, quant)) ultimo_digito = numero % 10 # soma o primeiro e o último dígito soma = primeiro_digito + ultimo_digito # mostra o resultado print("A soma do primeiro e do último dígito é: {0}".format(soma)) if __name__== "__main__": main() |
Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter radianos em graus na linguagem PythonQuantidade de visualizações: 5200 vezes |
Todos os métodos e funções trigonométricas em Python recebem seus argumentos em radianos, em vez de graus. Um exemplo disso é a função sin() do objeto math, no módulo math. Esta função recebe o ângulo em radianos e retorna o seu seno. No entanto, há momentos nos quais precisamos retornar alguns valores como graus. Para isso é importante sabermos fazer a conversão de radianos para graus. Veja a fórmula abaixo: \[Graus = Radianos \times \frac{180}{\pi}\] Agora veja como esta fórmula pode ser escrita em código Python: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import math # função principal do programa def main(): # valor em radianos radianos = 1.5 # obtém o valor em graus graus = radianos * (180 / math.pi) # mostra o resultado print(radianos, "radianos convertidos para", "graus é", graus) if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: 1.5 radianos convertidos para graus é 85.94366926962348 Para fins de memorização, 1 radiano equivale a 57,2957795 graus. Por fim, saiba que a linguagem Python nos oferece o método math.degrees() que nos permite converter ângulos radianos em graus. Meu propósito nesta dica foi mostrar a você como o cálculo de conversão pode ser escrito em Python. Em outras dicas dessa seção abordaremos o método math.degrees(). |
Python ::: Dicas & Truques ::: Data e Hora |
Como obter o nome do mês da data atual no formato curto usando os métodos today() e strftime() da classe datetime do PythonQuantidade de visualizações: 10192 vezes |
Nesta dica mostrarei como podemos combinar os métodos today() e strftime() da classe datetime do Python para retornar o nome do mês da data atual no formato curto, ou seja, se o mês for setembro, o valor retornado será "set". Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- from datetime import datetime import locale def main(): # Configurações do usuário locale.setlocale(locale.LC_ALL, '') # Obtém um datatime da data e hora atual hoje = datetime.today() # Exibe o nome do mês no formato curto print(hoje.strftime("O mês é: %b")) if __name__== "__main__": main() Ao executarmos este código nós teremos o seguinte resultado: O mês é: mar |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Serviços preliminares e instalações provisórias Em um canteiro de obras: A) São permitidas a entrada e a permanência de trabalhadores que não sejam compatíveis com a fase da obra. B) É permitida a entrada rápida de trabalhadores que não estejam assegurados. C) São proibidas a entrada e a permanência de quaisquer trabalhadores, independentemente da fase da obra. D) É proibida a entrada de trabalhadores que não estejam assegurados, mas é permitida a permanência de trabalhadores que não sejam compatíveis com a fase da obra. E) São proibidas a entrada e a permanência de trabalhadores que não estejam assegurados e que não sejam compatíveis com a fase da obra. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Java |
Analise o seguinte código Javapublic class Estudos { public static void main(String[] args) { int a = 3; System.out.println(++a * 8); } } Qual é o resultado de sua execução? A) 24 B) 32 C) 72 D) 25 Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Ações em estruturas: apresentação dos principais carregamentos na análise de estruturas convencionais As variações de temperatura causam ações nas estruturas. Tanto isso é verdade que é recomendado, em lajes com área grande, as tão conhecidas juntas de dilatação para evitar que ocorram fissuras no concreto devido às deformações causadas pelo carregamento térmico. A ação devido às variações de temperatura é classificada como? A) Ação acidental direta. B) Ação permanente indireta. C) Ação permanente direta. D) Ação acidental indireta. E) Ação excepcional. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Instalações prediais de águas pluviais A chuva de projeto é o primeiro parâmetro a ser estimado para o projeto de instalações prediais. Como este é altamente probabilístico, uma abordagem a partir de um banco de dados consistente é utilizada na prática brasileira. Julgue as afirmações a seguir: I. A chuva de projeto pode ser estimada a partir do ajuste das curvas IDF, que levam em conta a intensidade, a duração e a frequência com que ocorrem. II. O tempo de retorno é um parâmetro que define o tempo para que a chuva retorne. III. O coeficiente de deflúvio relaciona a porção de chuva incidente com o escoamento superficial gerado por esta. IV. Os coeficientes de ajustes utilizados nas curvas IDF são frutos de pressupostos teóricos associados à mecânica dos fluidos. Assinale a alternativa correta. A) I e II são verdadeiras. B) I e III são verdadeiras. C) II e III são verdadeiras. D) II e IV são verdadeiras. E) III e IV são verdadeiras. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?valor = 5 for i in range(0, 4): valor++ print("O valor final é: {0} ".format(valor)) A) O valor final é: 8 B) O valor final é: 9 C) Erro de SyntaxError: invalid syntax na linha 3 D) O valor final é: 7 E) Erro de SyntaxError: invalid syntax na linha 2 Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
wxWidgets - Como usar a classe wxFrame para criar a janela principal de suas aplicações C++ wxWidgets |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |