Construindo uma Lista Encadeada em Python | Estruturas de Dados #5

  Рет қаралды 36,907

Programação Dinâmica

Programação Dinâmica

Күн бұрын

Пікірлер: 81
@rubywizard
@rubywizard Жыл бұрын
Parabéns meu irmão, você é um excelente professor! Otima didática, por mais pessoas como você, que incentivem os jovens e a gelera no geral a se interessar por ciência de dados por conta de uma aula que faça o aluno se interessar.
@pgdinamica
@pgdinamica Жыл бұрын
Muitíssimo obrigado!
@gabrielribeiro8208
@gabrielribeiro8208 2 жыл бұрын
Que top, tu faz de um jeito bem tranquilo para explicar a lista encadeada, eu comprei um curso para aprender estrutura de dados, mas não aprendi nada quando o cara começou a falar de lista encadeada, mas contigo aprendi bem de boa, parabéns!
@pgdinamica
@pgdinamica 2 жыл бұрын
Muito obrigado!
@anadotie6618
@anadotie6618 3 ай бұрын
Estou estudando estruturas de dados na faculdade e tinha entendido muito pouco, vim assistir os seus vídeos e só tenho a agradecer pela didática incrível! Gostaria de deixar como sugestão deixar alguns exercícios para que se possa treinar escrever o código por nós mesmos, afinal a prática é muito importante!
@pgdinamica
@pgdinamica 3 ай бұрын
Obrigado! É uma ótima sugestão! Bons estudos!
@the_Saint355
@the_Saint355 Жыл бұрын
Parabéns cara você é FODA, nunca pare de ensinar
@pgdinamica
@pgdinamica Жыл бұрын
valeu!
@chinfoplaya
@chinfoplaya 6 ай бұрын
Cara, já tive essa matéria na faculdade, o prof é muito bom, além de entender, ele sabe explicar e tal... mas na época, não consegui absorver e você com essas aulas, eu prestando mais atenção e fazendo os codigos, anotando as teorias e mentalizando cada etapa, to conseguindo... Obrigado, meu irmão! Muito boa sua didática e continue assim, tmj! Um abraço.
@pgdinamica
@pgdinamica 6 ай бұрын
Bons estudos!
@thiagoaxel9368
@thiagoaxel9368 4 жыл бұрын
Minha nossa, esse cara não tem ideia de o quanto me ajudou a entender como criar uma lista encadeada, já tinha visto outras pessoas fazendo e não conseguia entender, mas graças a ele pude compreender com fazer uma tanto em python quanto em java, sendo que o detalhe para entender uma pequena parte, mas não tinha essa visão
@pgdinamica
@pgdinamica 4 жыл бұрын
Show, Thiago! Fico feliz que tenha conseguido! 👏🏾👏🏾👏🏾
@vitorhugosennacampos5148
@vitorhugosennacampos5148 4 жыл бұрын
cara sou seu fã! recomendando para meus amigos.. nao para de fazer video!!
@pgdinamica
@pgdinamica 4 жыл бұрын
🤩🤩
@rafaelrocha8483
@rafaelrocha8483 5 жыл бұрын
Parabéns Professor. Conseguiu explicar algo com certo grau de complexidade de forma simples. Obrigado pela colaboração :D
@jessicanathany
@jessicanathany 4 жыл бұрын
Melhor canal!
@pgdinamica
@pgdinamica 4 жыл бұрын
😁😁🙌🏾🙌🏾
@itslevictor
@itslevictor 4 жыл бұрын
Você fazendo parece tão fácil, fui fazer sozinho e voltei pro vídeo pra lembrar KKKKKK
@pgdinamica
@pgdinamica 4 жыл бұрын
Normal :) eu fiz algumas vezes na vida, antes de gravar esse vídeo
@joaovictorpereirarocha33
@joaovictorpereirarocha33 4 жыл бұрын
Excelente sua didática! Parabéns pelo vídeo.
@pgdinamica
@pgdinamica 4 жыл бұрын
Obrigado! 😊
@CampossVictor
@CampossVictor 2 жыл бұрын
Muito bom, comprei o libro python fluente e só agora entendi os dunder methods do python muito obrigado professor
@thiagoaxel9368
@thiagoaxel9368 4 жыл бұрын
Vlw mesmo pela ajuda, graças a você, pude aprender a criar listas e árvores em python, Java e recentemente resolvi arriscar aparar as arestas em c, aí reparei que foi a mesma lógica só tendo que acrescentar 2 detalhes,devido ao uso de ponteiros
@pgdinamica
@pgdinamica 4 жыл бұрын
Show, Thiago! Quando você consegue fazer esse link entre as implementações nas diferentes linguagens, é um bom sinal de que está entendendo a lógica da coisa!
@silaspereira936
@silaspereira936 Жыл бұрын
Obrigado pelas aulas professor, valeuzão
@henrypetricaaraujo4641
@henrypetricaaraujo4641 4 жыл бұрын
Vídeo muito bom. Parabéns pela clareza nas explicações!
@pgdinamica
@pgdinamica 4 жыл бұрын
Obrigado!
@brunogorini4838
@brunogorini4838 6 жыл бұрын
Muito bom o vídeo! Parabéns! Só acho seria interessante também colocar os códigos vistos nas aulas na descrição.
@pgdinamica
@pgdinamica 6 жыл бұрын
Atualizado! Obrigado por lembrar! Abraço
@kevinbavia0a10
@kevinbavia0a10 4 жыл бұрын
Parabéns pelo trabalho, ficou excelente.
@pgdinamica
@pgdinamica 4 жыл бұрын
Muito obrigado!
@naoconta
@naoconta 5 жыл бұрын
Parabéns, ótima aula, muito bem explicada!
@igorwessel9620
@igorwessel9620 3 жыл бұрын
Mt bom o video e ótima didática, fiz sozinho a primeira parte de acrescentar ao próximo Nodo a unica diferença é que fiz com for e com o while ficou um pouco mais legível o código.
@pgdinamica
@pgdinamica 3 жыл бұрын
Top, Igor! Tentar por conta própria é uma excelente forma de estudar :)
@vitorsantos3686
@vitorsantos3686 3 жыл бұрын
eu vi o vídeo umas 10 vezes mais aprendi kkkk obrigado professor!
@pgdinamica
@pgdinamica 3 жыл бұрын
Isso aí, persistir é importante! Há vários conteúdos que eu tenho que ver, estudar e refletir sobre algumas vezes até entender. Bons estudos!
@Hartigan0809
@Hartigan0809 4 жыл бұрын
muito obrigado!
@pgdinamica
@pgdinamica 4 жыл бұрын
De nada!
@rafaelhermogenesdemendonca5470
@rafaelhermogenesdemendonca5470 2 жыл бұрын
Muito bom! Estou me preparando para uma prova do Google.
@pgdinamica
@pgdinamica 2 жыл бұрын
Bons estudos e boa sorte!
@raniel0511
@raniel0511 3 жыл бұрын
Assistido✔️ Mas vou precisar assistir mais vezes kk Mas ó já tô entendendo complexidade de algorítmos por causa de você, pelo menos essa parte entendi 😅
@TupshipGamer
@TupshipGamer 4 жыл бұрын
Mestre, fiquei com uma dúvida. Não consegui entender como foi feito para que o self.head seja interpretado como um nó (class Node), visto que é possível, por exemplo fornecer atributos da class Node para o pointer, como em pointer.next. Não posso deixar de agradecer e lhe parabenizar por dividir seus conhecimentos de forma tão clara e didática.
@pgdinamica
@pgdinamica 4 жыл бұрын
No início, self.head é *None* (nulo, vazio). Na primeira inserção, o teste if self.head: falha, pois *None* é interpretado como *False*, daí caímos no else: self.head = Node(elem) nessa linha, criamos um nó pra segurar o valor inserido (elem) e atribuímos este nó a self.head. Na próxima inserção, passaremos na condição do if. Para não modificarmos os valores que já estão na lista, criamos a variável *pointer*, que irá percorrer cada elemento até a posição final, onde podemos adicionar. Consegui atender à dúvida? Obs: você tem o mesmo nome do meu professor dessa disciplina na faculdade 😬
@TupshipGamer
@TupshipGamer 4 жыл бұрын
@@pgdinamica Ahhhh sim, perfeito, consegui entender, não havia me atentado a esse detalhe. Muito Obrigado Plot twist: eu sou seu professor e estou apenas checando se você realmente aprendeu a matéria kkkkk Obs: não consigo mais assistir minhas aulas da faculdade relacionadas à esse conteúdo depois de ter conhecido seu canal haha.
@ricj9594
@ricj9594 4 жыл бұрын
muito thank you!!
@pgdinamica
@pgdinamica 4 жыл бұрын
😄🙌🏾
@roberiofagundes
@roberiofagundes 5 жыл бұрын
como seria a lista duplamente encadeada em python?
@esaujoao5027
@esaujoao5027 2 жыл бұрын
Tem vídeo da lista duplamente encadeada????
@ianramos4534
@ianramos4534 Жыл бұрын
Professor, muito obrigado pelas aulas, estão ajudando demais na compreensão! Agora eu tenho uma dúvida, apesar de você ter falado que não era possível realizar uma busca binária em lista encadeada, já que não temos acesso aleatório, eu consegui aqui. Basicamente os métodos __getitem__ e __len__ permitiram que isso fosse possível perfeitamente. Por que? Um ponto importante é que talvez não valha a pena utilizar busca binária em uma lista encadeada, pois o método __getitem__ iria percorrer todo o array, no final das contas, para achar e atualizar os índices da busca binária, o que elevaria a complexidade da busca para O(n * log(n)) talvez? E aí o propósito da busca binária não faria mais sentido.
@pgdinamica
@pgdinamica Жыл бұрын
O seu 2o parágrafo é a resposta para a pergunta do 1o. Você pode implementar algo que tem uma interface parecida com a busca binária, mas funciona de um jeito diferente, uma vez que você não pode usar a ideia central do algoritmo, que é eliminar metade dos dados a cada passo, com um número constante de operações.
@ianramos4534
@ianramos4534 Жыл бұрын
@@pgdinamica Essa outra implementação seria pra manter a complexidade do algoritmo em O(log n), certo?
@detudoumpouco117
@detudoumpouco117 3 ай бұрын
Não encontrei o vídeo anterior a esse.
@pgdinamica
@pgdinamica 3 ай бұрын
Na descrição do vídeo, há um link para a playlist de estruturas de dados, com todos os vídeos em ordem: kzbin.info/aero/PL5TJqBvpXQv5Bb71AE5Cd_kB5rNsfU4Cp Bons estudos!
@thespookylucy
@thespookylucy Жыл бұрын
Oie, tudo bem? O meu tá dando esse erro quando testo o len(lista) ou adiciono elementos no modo interativo: NameError Traceback (most recent call last) Cell In[5], line 1 ----> 1 lista(0) NameError: name 'lista' is not defined
@pgdinamica
@pgdinamica Жыл бұрын
O erro diz que a variável lista não está definida. Não foi executada uma instrução da forma: lista =
@VivianneLopes-es5kc
@VivianneLopes-es5kc Жыл бұрын
Desculpa essa pergunta meio boba, mas esse .next que vc usa nas variáveis, o python entende que vc quer pular para o próximo elemento? É como se fosse uma palavra reservada?
@pgdinamica
@pgdinamica Жыл бұрын
Não. Nós construímos uma classe Nó (Node) neste vídeo: kzbin.info/www/bejne/e4a4nXVqh9KbnJI O atributo "next" foi definido dentro da classe Node, que é importada neste vídeo de lista encadeada. Se a sua dificuldade for com orientação a objetos (o que é um atributo? classe? como constrói isso?), recomendo olhar esta playlist: kzbin.info/aero/PL5TJqBvpXQv60f8_yh-fg1uJptnA8ZDNV Se ainda lhe faltar algum conhecimento mais básico da linguagem como, por exemplo, criação e importação de módulos, recomendo olhar esta outra playlist: kzbin.info/aero/PL5TJqBvpXQv6AEfVymby32MinHdxZA-8J
@VivianneLopes-es5kc
@VivianneLopes-es5kc Жыл бұрын
@@pgdinamica Obrigada, quando terminar essa playlist de estrutura verei a essa que indicou, obrigada pelo trabalho maravilhoso
@slatantofaz7352
@slatantofaz7352 2 жыл бұрын
Muito bom o vídeo, mas só uma coisa que pode parecer meio besta. Seria muito melhor se vc pudesse rodar o código no terminal da própria IDE
@mvideos672
@mvideos672 5 жыл бұрын
Como que busca um elemento pela chave tipo o pseudocódigo abaixo: Busca lista(L,k) x = L.cabeca enquanto x 6= null e x.chave 6= k fa¸ ca x = x.proximo retorna x
@pgdinamica
@pgdinamica 5 жыл бұрын
Oi, @MVideos, você pode escrever esse pseudocódigo como uma função dentro da classe LinkedList assim: def busca(self, k): node = self.head while node and (node.data != k): node = node.next return node Note que neste caso, você estaria retornando um Nó e não um valor ou uma resposta (está na lista ou não). É bem provável que uma função como essa seja usada apenas internamente à classe LinkedList (ou alguma derivada dela).
@antoniocarloszxc
@antoniocarloszxc 4 жыл бұрын
Estou com este erro " AttributeError: type object 'Node' has no attribute 'next' "
@pgdinamica
@pgdinamica 3 жыл бұрын
O erro é o que está descrito: sua classe de nó (Node) não tem um atributo (variável) chamado "next", mas em algum lugar o código tenta acessa-lo. Pode ser que você não tenha declarado, pode ser um erro de digitação, de identação, de importação ou ainda outra coisa. Não tem como saber sem mais detalhes.
@junior13013
@junior13013 4 жыл бұрын
Eu tento fazer os testes no modo interativo do interpretador Python Shell mas sempre da erro. Eu tenho Windows, e sempre da erro desde o começo, não estou sabendo como fazer os testes que você faz T-T
@junior13013
@junior13013 4 жыл бұрын
>>> from linkedlist import LinkedList Traceback (most recent call last): File "", line 1, in from linkedlist import LinkedList ModuleNotFoundError: No module named 'linkedlist'
@pgdinamica
@pgdinamica 4 жыл бұрын
O interpretador tem que ser aberto no mesmo diretório em que se encontra linkedlist.py
@junior13013
@junior13013 4 жыл бұрын
@@pgdinamica Obrigado pela dica, eu tava tentando executar direto do console do PyCharm, mas agora eu to abrindo pelo Python Shell que ta dando certo.
@heloisamachado433
@heloisamachado433 Жыл бұрын
ensina a fazer lista duplamente encadeada 😢
@danielmelo9064
@danielmelo9064 Жыл бұрын
Imagino que seja semelhante a lista encadeada porém cada nó permite ir (self.next) e voltar (self.previous). É um bom desafio de tentar fazer sozinho caso o professor não ensine
@pgdinamica
@pgdinamica Жыл бұрын
exatamente!
@johnsykes4513
@johnsykes4513 3 жыл бұрын
Cara eu aprendi a fazer o bubbleSort contigo, mas dessa vez eu não consegui entender o que você explicava.
@pgdinamica
@pgdinamica 3 жыл бұрын
Oi, John, você viu o vídeo #04, anterior a este? (kzbin.info/www/bejne/e4a4nXVqh9KbnJI) Qual a sua dificuldade?
@frasesmilionariasofc
@frasesmilionariasofc 3 жыл бұрын
Gosto da explicação porem, é difícil entender o código em inglês
@pgdinamica
@pgdinamica 3 жыл бұрын
Entendo, mas infelizmente termos em inglês são uma realidade nos códigos. Em qualquer biblioteca que implemente estruturas de dados, você encontrará os nomes das estruturas e funções em inglês. No começo, é desconfortável mesmo, mas é preciso que você resista à curva de aprendizagem e prossiga, usando vídeos como este para entender a tradução. Nos vídeos básicos de Python (kzbin.info/aero/PL5TJqBvpXQv6AEfVymby32MinHdxZA-8J) escrevemos o código em português para facilitar o primeiro contato, mas para assuntos intermediário/avançado como estruturas de dados, é importante desenvolver esta competência 👍🏾 Aos 7:47 deste vídeo kzbin.info/www/bejne/qHbXqJ2ijcembK8 eu mostro a discrepância entre a quantidade de conteúdo que pode te ajudar em inglês e em português na programação.
@infodevbrasil
@infodevbrasil 4 жыл бұрын
cara top o video, mas como ficaria uma lista de capitais aqui github.com/shadowruge/Weather_Brasil/blob/main/weather.py
@benjaminarrola3489
@benjaminarrola3489 Жыл бұрын
Meu pc deu tela azul enquanto eu tava fazendo 😅 me desejem sorte
@pgdinamica
@pgdinamica Жыл бұрын
Boa sorte!
@danielmoura4821
@danielmoura4821 4 жыл бұрын
Tenso é aprender isso em C mano kkkkkkkkkkkkkkkkkk.
@pgdinamica
@pgdinamica 4 жыл бұрын
Sei, minha graduação foi em C 🙂
Nó e Alocação Encadeada | Lista Encadeada Simples | Estruturas de Dados #4
15:02
Inserção e Remoção em Listas Encadeadas em Python | Estruturas de Dados #6
37:40
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 15 МЛН
If people acted like cats 🙀😹 LeoNata family #shorts
00:22
LeoNata Family
Рет қаралды 46 МЛН
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
Pilhas em Python | Estruturas de Dados #7
20:01
Programação Dinâmica
Рет қаралды 16 М.
Aprenda a criar e implementar Funções em Python | Python do Jeito Certo 2.0
15:33
Limpeza de Dados com Python: Passo a Passo Prático
26:43
Eficiência Programada
Рет қаралды 205
Percurso em PÓS ORDEM em ÁRVORE BINÁRIA | Estrutura de Dados #12
20:21
Programação Dinâmica
Рет қаралды 14 М.
Listas em Alocação Sequencial | Estruturas de Dados #1
8:54
Programação Dinâmica
Рет қаралды 20 М.
ÁRVORES na Computação I Estrutura de Dados #9
18:56
Programação Dinâmica
Рет қаралды 51 М.
IMPLEMENTANDO uma ÁRVORE BINÁRIA | Estrutura de dados #10
30:49
Programação Dinâmica
Рет қаралды 41 М.
PARA QUE usar Árvores (Binária ou Não)? | Aplicações de Estruturas de Dados
6:17