Você está aqui: Python ::: Desafios e Lista de Exercícios Resolvidos ::: Lista Ligada Simples |
|
Escreva um programa Python para criar uma lista singularmente ligada, inserir novos nós no final da lista e exibí-los - Exercícios Resolvidos de PythonQuantidade de visualizações: 686 vezes |
|
Pergunta/Tarefa: Escreva um programa Python para criar uma lista singularmente ligada contendo um método inserir_final() que, quando invocado, criará um novo nó e o armazenará no final da lista encadeada simples. Em seguida exiba todos os nós da lista usando um método exibir_lista(). Sua saída deverá ser parecida com: Os itens da lista são: Goiânia Rio de Janeiro Cuiabá São Paulo O início da lista é: Goiânia O final da lista é: São Paulo Veja a resolução comentada deste exercício em Python: # esta classe representa um nó da lista ligada class No: # construtor da classe nó def __init__(self, valor=None): self.valor = valor self.proximo = None # fim da classe No # classe ListaLigadaSimples class ListaLigadaSimples: # construtor da classe def __init__(self): # cria uma lista vazia self.inicio = None # aponta para o início da lista self.final = None # aponta para o final da lista self.quant_nos = 0 # mantém a contagem dos nós da lista # insere no final da lista def inserir_final(self, valor): # adiciona um novo nó no final da lista no = No(valor) # a lista já contém nós? if self.final: # o próximo do final da lista aponta para o novo nó self.final.proximo = no # agora o final da lista aponta para o novo nó self.final = no # a lista ainda está vazia else: # inicio aponta para o novo nó self.inicio = no # final aponta para o novo nó self.final = no # aumenta o contador de nós self.quant_nos += 1 def exibir_lista(self): # percorre os itens da lista e imprime cada um item_atual = self.inicio # enquant o item atual for diferente de nulo while item_atual: valor = item_atual.valor print(valor) # avança para o próximo item item_atual = item_atual.proximo # fim da classe ListaLigadaSimples # método principal def main(): # vamos criar uma nova lista lista_cidades = ListaLigadaSimples() # vamos adicionar quatro cidades lista_cidades.inserir_final("Goiânia") lista_cidades.inserir_final("Rio de Janeiro") lista_cidades.inserir_final("Cuiabá") lista_cidades.inserir_final("São Paulo") # vamos mostrar os itens da lista ligada print("Os itens da lista são:\n") lista_cidades.exibir_lista() # vamos mostrar os nós no início e fim da lista print("\nO início da lista é: {}".format(lista_cidades.inicio.valor)) print("O final da lista é: {}".format(lista_cidades.final.valor)) if __name__== "__main__": main() |
|
Link para compartilhar na Internet ou com seus amigos: | |
Rust ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o tamanho de um array em Rust usando a função len()Quantidade de visualizações: 378 vezes |
Em várias situações nós precisamos obter e retornar a quantidade de elementos em um vetor Rust, ou seja, um array. Para isso nós podemos usar a função len() do objeto Array. Veja um exemplo Rust no qual nós criamos um array com cinco elementos do tipo inteiro e em seguida usando a função len() para retornar o seu tamanho: // função principal do programa Rust fn main() { // vamos criar um array com 5 elementos let valores = [7, 3, 4, 9, 1]; // agora vamos obter o tamanho do array let tamanho = valores.len(); // e mostramos o resultado println!("O array possui {} elementos", tamanho); } Ao executar este código Rust nós teremos o seguinte resultado: O array possui 5 elementos |
Delphi ::: Dicas & Truques ::: Arquivos e Diretórios |
Como excluir um arquivo em Delphi usando a função DeleteFile()Quantidade de visualizações: 31165 vezes |
Em algumas situações nossas aplicações precisam excluir arquivos. Para isso o Delphi nos fornece a função DeleteFile(), presente na unit SysUtils. Esta função recebe o caminho e nome do arquivo a ser excluído e retorna true se a exclusão foi feita com sucesso e false em caso contrário. Veja um trecho de código no qual excluímos um arquivo chamado "dados.txt": procedure TForm1.Button1Click(Sender: TObject); var arquivo: string; begin // diretorio e nome do arquivo arquivo := 'C:\arquivo de codigos\dados.txt'; // vamos remover o arquivo if DeleteFile(arquivo) then ShowMessage('O arquivo foi excluído com sucesso') else ShowMessage('Não foi possível excluir o arquivo'); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Dicas & Truques ::: Threads |
Como usar uma thread Java para animar o título de uma janela JFrame do Java SwingQuantidade de visualizações: 11265 vezes |
Nesta dica mostro como podemos usar uma thread para substituir um timer em uma aplicação Swing. Ao executar este código você verá que o texto da barra de títulos da aplicação pisca continuamente enquanto o aplicativo estiver sendo executado. Veja a listagem para o exemplo: import java.awt.*; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("Uso de threads em aplicações Swing"); // vamos criar a thread que fará o título da janela // piscar continuamente // vamos criar duas threads MinhaThread t1 = new MinhaThread(this); t1.start(); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } // classe que usaremos como thread class MinhaThread extends Thread{ private JFrame janela; private String titulo; public MinhaThread(JFrame janela){ this.janela = janela; this.titulo = janela.getTitle(); } public void run(){ try{ while(true){ if(janela.getTitle().equals("")) janela.setTitle(titulo); else janela.setTitle(""); Thread.sleep(300); } } catch(InterruptedException ex){ // precisa fazer nada aqui } } } Um detalhe interessante é que, ao ser colocada para dormir, a thread usada no exemplo permite que as demais threads da aplicação continuem suas execuções normalmente. Isso permite que a janela seja movida, redimensionada, minimizada, etc. Lembre-se sempre de usar o método Thread.yield() caso a thread criada estiver executando alguma ação demorada. Isso evitará que a janela do programa pareça congelada. |
VB.NET ::: Dicas & Truques ::: Strings e Caracteres |
Como obter uma substring em uma string VB.NET usando o método Substring() da classe StringQuantidade de visualizações: 11552 vezes |
Nesta dica mostrarei como podemos usar o método Substring() da classe String do VB.NET para retornar parte de uma palavra, frase ou texto, ou seja, uma substring em uma string. Este método recebe o índice do caractere inícial da substring a ser obtida e a quantidade total de caracteres. O retorno é uma nova string. Veja o código completo para o exemplo: Imports System Module Program Sub Main(args As String()) Dim frase As String = "Gosto muito de VB.NET" ' vamos mostrar a frase original Console.WriteLine("Frase original: " & frase) ' vamos obter a substring "VB.NET" Dim substring As String = frase.Substring(15, 6) ' exibe o resultado Console.WriteLine("A substring é: " & substring) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código VB.NET nós teremos o seguinte resultado: Frase original: Gosto muito de VB.NET A substring é: VB.NET |
JavaScript ::: DOM (Document Object Model) ::: Navegação e Pesquisa de Nós (Nodes) |
Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScriptQuantidade de visualizações: 8132 vezes |
Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScript A propriedade nodeType, definida no World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1, pode ser usada quando precisamos obter o tipo de um determinado nó (node) na hierarquia de elementos HTML no DOM (Document Object Model). Esta propriedade retorna um valor inteiro indicando o tipo de nó sendo testado. Os valores mais comuns são 1 (nó elemento) e 3 (nó texto). Veja uma página HTML na qual temos um parágrafo e um elemento span. Na primeira vez nós vamos obter uma referência ao parágrafo e testar o tipo do nó. Na segunda vez nós obtemos uma referência ao primeiro nó filho do elemento span, o que resultará em seu conteúdo sendo testado. Veja: <html> <head> <title>Estudos JavaScript</title> <script type="text/javascript"> function obterNodeType(){ // vamos obter uma referência ao parágrafo com o id "paragrafo" var elem = document.getElementById("paragrafo"); // vamos obter o tipo de nó deste elemento var tipo = elem.nodeType; // vamos mostrar o resultado window.alert("O tipo deste elemento é: " + tipo); // vamos obter uma referência ao span com o id "frase" elem = document.getElementById("frase"); // vamos obter o tipo de nó do primeiro filho deste elemento tipo = elem.firstChild.nodeType; // vamos mostrar o resultado window.alert("O tipo deste elemento é: " + tipo); } </script> </head> <body> <p id="paragrafo">Sou um parágrafo</p> <span id="frase">Veja esta frase</span> <br><button onclick="obterNodeType()">Obter tipo do nó (nodeType)</button> </body> </html> Note que esta propriedade é somente-leitura, ou seja, não podemos modificar seu valor em tempo de execução. A propriedade nodeType pode ser obtida a partir dos seguintes elementos: a, abbr, acronym, address, applet, area, b, base, basefont, bdo, bgsound, big, blink, blockquote, body, br, button, caption, center, cite, code, col, colgroup, comment, dd, del, dfn, dir, div, dl, dt, em, embed, fieldset, font, form, frame, frameset, h1, h2, h3, h4, h5, h6, head, hr, html, i, iframe, img, input:button, input:checkbox, input:file, input:hidden, input:image, input:password, input:radio, input:range, input:reset, input:search, input:submit, input:text, ins, isindex, kbd, keygen, label, legend, li, link, listing, map, marquee, menu, meta, nobr, noframes, noscript, object, ol, optgroup, option, p, param, plaintext, pre, q, rt, ruby, s, samp, script, select, small, span, strike, strong, style, sub, sup, table, tbody, td, textarea, tfoot, th, thead, title, tr, tt, u, ul, var, wbr, xml e xmp. Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6. |
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
PHP - Programação Orientada a Objetos em PHP - Aprenda a criar e usar métodos e classes abstratas em PHP |
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 |