Тёмный

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

Programação Dinâmica
Подписаться 203 тыс.
Просмотров 36 тыс.
50% 1

Neste vídeo, construímos de fato nossa primeira estrutura de dados em Python: uma lista encadeada. Focamos, primeiramente, em aspectos ligados ao acesso e busca de dados dentro da lista encadeada. Em um próximo vídeo, abordaremos a inserção e a remoção de elementos de uma lista encadeada, completando a implementação dessa estrutura de dados.
▶️Se você não tem experiência com Python, mas gostaria de aprender a programar e desenvolver uma base sólida de programação usando esta linguagem, confira o nosso curso Python do Jeito Certo: vai.pgdinamica...
*Código do vídeo: github.com/pyt...
- Por que e como estudar Estruturas de Dados e Algoritmos? Confira a resposta neste vídeo: • Por que e como estudar...
Talvez você esteja estudando este assunto para o seu curso de Ciência da Computação, Engenharia da Computação, Ciência de Dados etc ou esteja se preparando para entrevistas de grandes empresas de tecnologia como as FAANG (Facebook, Apple, Amazon, Netflix e Google), ou ainda você queira se aprimorar como programador(a) adquirindo um repertório essencial para a compreensão dos problemas da área e construção de novas tecnologias. Seja qual for o seu motivo, você pode encontrar aqui diversos vídeos para te ajudar!
Uma lista encadeada, às vezes, também é chamada de lista ligada. Aprenda a construir uma lista encadeada simples em Python na sequência deste vídeo: • Construindo uma Lista ...
▶️ Acompanhe o curso de estrutura de dados nesta playlist: • Estrutura de Dados
▶️ Confira também a playlist sobre Análise e Projeto de Algoritmos: • Análise e Projeto de A...
📚 Livros de Algoritmos e Estruturas de Dados: amzn.to/3d5wK4m
📚 Livros recomendados de Data Science: amzn.to/2XZyxUr
🎥 SetUp - Equipamentos: amzn.to/37Cg3N2
🟣 Canal na Twitch para lives: / pgdinamica
🟦 Canal do Telegram para receber os vídeos: t.me/joinchat/...
✉️ E-mails:
- Propostas comerciais: pgdinamica@brunch.ag
- Demais assuntos: contato@programacaodinamica.com.br
👩🏾‍💻👨🏾‍💻 Confira mais conteúdo em nosso blog: blog.programac...
🔥 Faça parte da comunidade gratuita Programação Mais Dinâmica: bit.ly/pgsparkle (baixe o app e entre na comunidade)
📸 Nos siga no Instagram: / pgdinamica
📸 @kizzy_terra @hallpaz
🐦 Nos siga no Twitter: / pgdinamica
🐦 @kizzy_terra @hallpaz
⚠️ Python Café agora é Programação Dinâmica! :D
* Curta a Programação Dinâmica no facebook: pgdinamica
* Nosso repositório no Github: github.com/programacaodinamica
* Confira o nosso Medium: medium.com/programacaodinamica
* Confira os artigos no Python Café: pythoncafe.com.br
🥰 Se você gosta do nosso trabalho e acha relevante a nossa atuação no RU-vid, considere nos apoiar se tornando membro do canal: www.youtube.co...

Опубликовано:

 

1 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 83   
@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
@rubywizard
@rubywizard 9 месяцев назад
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 9 месяцев назад
Muitíssimo obrigado!
@anadotie6618
@anadotie6618 Месяц назад
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 Месяц назад
Obrigado! É uma ótima sugestão! Bons estudos!
@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!
@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
@roberiofagundes
@roberiofagundes 5 лет назад
como seria a lista duplamente encadeada em python?
@esaujoao5027
@esaujoao5027 Год назад
Tem vídeo da lista duplamente encadeada????
@rafaelrocha8483
@rafaelrocha8483 5 лет назад
Parabéns Professor. Conseguiu explicar algo com certo grau de complexidade de forma simples. Obrigado pela colaboração :D
@vitorhugosennacampos5148
@vitorhugosennacampos5148 4 года назад
cara sou seu fã! recomendando para meus amigos.. nao para de fazer video!!
@pgdinamica
@pgdinamica 4 года назад
🤩🤩
@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 (ru-vid.com/group/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 ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-rEtwjlXbs6M.html 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.
@thespookylucy
@thespookylucy 10 месяцев назад
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 10 месяцев назад
O erro diz que a variável lista não está definida. Não foi executada uma instrução da forma: lista =
@the_Saint355
@the_Saint355 Год назад
Parabéns cara você é FODA, nunca pare de ensinar
@pgdinamica
@pgdinamica Год назад
valeu!
@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?
@benjaminarrola3489
@benjaminarrola3489 Год назад
Meu pc deu tela azul enquanto eu tava fazendo 😅 me desejem sorte
@pgdinamica
@pgdinamica Год назад
Boa sorte!
@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: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-EUUlB4Rmhf0.html 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: ru-vid.com/group/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: ru-vid.com/group/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
@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.
@naoconta
@naoconta 4 года назад
Parabéns, ótima aula, muito bem explicada!
@infodevbrasil
@infodevbrasil 3 года назад
cara top o video, mas como ficaria uma lista de capitais aqui github.com/shadowruge/Weather_Brasil/blob/main/weather.py
@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 😅
@joaovictorpereirarocha33
@joaovictorpereirarocha33 4 года назад
Excelente sua didática! Parabéns pelo vídeo.
@pgdinamica
@pgdinamica 4 года назад
Obrigado! 😊
@detudoumpouco117
@detudoumpouco117 22 дня назад
Não encontrei o vídeo anterior a esse.
@pgdinamica
@pgdinamica 22 дня назад
Na descrição do vídeo, há um link para a playlist de estruturas de dados, com todos os vídeos em ordem: ru-vid.com/group/PL5TJqBvpXQv5Bb71AE5Cd_kB5rNsfU4Cp Bons estudos!
@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!
@chinfoplaya
@chinfoplaya 4 месяца назад
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 4 месяца назад
Bons estudos!
@victordesouzacampos3134
@victordesouzacampos3134 2 года назад
Muito bom, comprei o libro python fluente e só agora entendi os dunder methods do python muito obrigado professor
@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? (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-EUUlB4Rmhf0.html) Qual a sua dificuldade?
@silaspereira936
@silaspereira936 Год назад
Obrigado pelas aulas professor, valeuzão
@antoniocarloszxc
@antoniocarloszxc 3 года назад
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.
@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! 👏🏾👏🏾👏🏾
@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).
@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 :)
@jessicanathany
@jessicanathany 3 года назад
Melhor canal!
@pgdinamica
@pgdinamica 3 года назад
😁😁🙌🏾🙌🏾
@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!
@junior13013
@junior13013 3 года назад
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 3 года назад
>>> from linkedlist import LinkedList Traceback (most recent call last): File "", line 1, in from linkedlist import LinkedList ModuleNotFoundError: No module named 'linkedlist'
@pgdinamica
@pgdinamica 3 года назад
O interpretador tem que ser aberto no mesmo diretório em que se encontra linkedlist.py
@junior13013
@junior13013 3 года назад
@@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.
@henrypetricaaraujo4641
@henrypetricaaraujo4641 4 года назад
Vídeo muito bom. Parabéns pela clareza nas explicações!
@pgdinamica
@pgdinamica 4 года назад
Obrigado!
@rafaelhermogenesdemendonca5470
@rafaelhermogenesdemendonca5470 2 года назад
Muito bom! Estou me preparando para uma prova do Google.
@pgdinamica
@pgdinamica 2 года назад
Bons estudos e boa sorte!
@kevinbavia0a10
@kevinbavia0a10 3 года назад
Parabéns pelo trabalho, ficou excelente.
@pgdinamica
@pgdinamica 3 года назад
Muito obrigado!
@danielmoura4821
@danielmoura4821 3 года назад
Tenso é aprender isso em C mano kkkkkkkkkkkkkkkkkk.
@pgdinamica
@pgdinamica 3 года назад
Sei, minha graduação foi em C 🙂
@vitorsantos3686
@vitorsantos3686 2 года назад
eu vi o vídeo umas 10 vezes mais aprendi kkkk obrigado professor!
@pgdinamica
@pgdinamica 2 года назад
Isso aí, persistir é importante! Há vários conteúdos que eu tenho que ver, estudar e refletir sobre algumas vezes até entender. Bons estudos!
@HarrysonRenanBritoSousa
@HarrysonRenanBritoSousa Год назад
Excelente aula!
@pgdinamica
@pgdinamica Год назад
Muito obrigado!
@ricj9594
@ricj9594 3 года назад
muito thank you!!
@pgdinamica
@pgdinamica 3 года назад
😄🙌🏾
@Hartigan0809
@Hartigan0809 3 года назад
muito obrigado!
@pgdinamica
@pgdinamica 3 года назад
De nada!
Далее
Как открыть багажник?
00:36
Просмотров 16 тыс.
МАЛОЙ ГАИШНИК
00:35
Просмотров 383 тыс.
Pilhas em Python | Estruturas de Dados #7
20:01
Просмотров 16 тыс.
COMPLEXIDADE de ALGORITMOS I - Noção INTUITIVA
15:10
Curso Python #17 - Listas (Parte 1)
40:17
Просмотров 610 тыс.
Filas | Estruturas de Dados #8
23:27
Просмотров 13 тыс.
Listas Encadeadas - Entendendo o Conceito
3:37
Просмотров 50 тыс.