0% acharam este documento útil (0 voto)
12 visualizações94 páginas

Listas Encadeadas

O documento aborda listas encadeadas em Python, explicando conceitos como alocação dinâmica, inserção e remoção de elementos, e a estrutura de nós que contém informações e ponteiros. Destaca as vantagens e desvantagens das listas encadeadas em comparação com listas baseadas em arrays, além de mencionar a importância de entender essas estruturas para otimização de memória e manipulação de dados. O texto também discute a diferença entre vetores e listas em Python, enfatizando a flexibilidade das listas.

Enviado por

Daniel Crespan
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
12 visualizações94 páginas

Listas Encadeadas

O documento aborda listas encadeadas em Python, explicando conceitos como alocação dinâmica, inserção e remoção de elementos, e a estrutura de nós que contém informações e ponteiros. Destaca as vantagens e desvantagens das listas encadeadas em comparação com listas baseadas em arrays, além de mencionar a importância de entender essas estruturas para otimização de memória e manipulação de dados. O texto também discute a diferença entre vetores e listas em Python, enfatizando a flexibilidade das listas.

Enviado por

Daniel Crespan
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 94

LISTAS ENCADEADAS

PROFA. SIMONE BELLO KAMINSKI AIRES


SUMÁRIO

• Revisão
• Acessar valor de variável pelo endereço de memória
• Modificar valor usando o endereço de memória
• Ponteiros e Funções
• Vetores x Listas
• Listas simplesmente encadeada
• Listas duplamente encadeadas
REVISÃO
VARIÁVEL
“QUANTOS BITS SÃO PRECISOS PARA ARMAZENAR
UMA VARIÁVEL EM PYTHON”
Tipo Tamanho em bytes Precisão / Representatividade
int 28 + (4 * número de dígitos) Representa inteiros de precisão ilimitada
float 24 ou 32 (dependendo do SO) IEEE 754, precisão dupla (~15-17
dígitos)
complex 48 2 floats (real e imaginário)
bool 28 Apenas dois valores (True, False)
str 49 + (número de caracteres * 1 byte) Unicode, cada caractere ocupa pelo
menos 1 byte
TESTANDO OS TAMANHOS NO PYTHON
PONTEIROS EM PYTHON – CONCEITOS
BÁSICOS

Em linguagens como C e C++, podemos criar ponteiros explicitamente e


manipular diretamente os endereços de memória.

Python não permite manipulação direta de ponteiros, mas podemos


acessar endereços de memória e entender como referências funcionam.

A função id() retorna o endereço de memória de uma variável.


FUNÇÃO ID()
TIPOS MUTÁVEIS E IMUTÁVEIS - PYTHON
TIPOS IMUTÁVEIS
TIPOS MUTÁVEIS
ACESSAR E MODIFICAR VALOR DE VARIÁVEL PELO
ENDEREÇO DE MEMÓRIA
ACESSAR E MODIFICAR VALOR DE VARIÁVEL PELO
PONTEIRO

• Biblioteca ctypes
• import ctypes
• Acessar e alterar o valor de uma variável na memória.
EXEMPLO 1 – ACESSAR VALOR DE VARIÁVEL

• Para modificar um valor armazenado em um ponteiro usando ctypes, você precisa


garantir que está trabalhando com um objeto mutável.

• Como os inteiros (int) são imutáveis em Python, precisamos criar um objeto


ctypes.c_int, que representa um inteiro armazenado na memória e pode ser
modificado diretamente.
EXEMPLO 1 – ACESSAR VALOR DE VARIÁVEL
EXEMPLO 2 – MODIFICAR VALOR DE VARIÁVEL

• Continuando do exemplo 1....


ATENÇÃO – IMPORTANTE
• Se você realmente precisa manipular memória de forma direta e segura, use
C ou C++ em vez de Python.
• Esse método é arriscado e pode causar falhas imprevisíveis, pois id() não
garante um acesso válido à memória real do objeto.
• Esse método não funciona com variáveis int normais do Python (pois são
imutáveis). Você precisa de um objeto ctypes.c_int para que a manipulação
direta na memória seja segura.Se tentar usar id(a),, o Python pode mover ou
desalocar o objeto, resultando em comportamento imprevisível ou crash do
interpretador.
VETORES X LISTAS
VETORES X LISTAS

• Vetores são uma estrutura fundamental de armazenamento de dados,


amplamente utilizada em diversas linguagens de programação, como C e
Java.
• No entanto, em Python, não há um tipo de dado chamado "vetor" nativo. Em
vez disso, usamos listas (list), que são estruturas mais flexíveis.
VETORES

• Um vetor é uma estrutura de dados homogênea, onde:


• Os elementos ocupam posições contíguas na memória.
• Todos os elementos possuem o mesmo tipo de dado.
• O acesso aos elementos é feito por índices fixos.
• O tamanho do vetor geralmente é fixo e definido na alocação.
VETORES

• Um vetor é uma estrutura de dados homogênea, onde:


• Os elementos ocupam posições contíguas na memória.
• Todos os elementos possuem o mesmo tipo de dado.
• O acesso aos elementos é feito por índices fixos.
• O tamanho do vetor geralmente é fixo e definido na alocação.

Exemplo em Linguagem C
Vetor de tamanho 5
VETORES

• Um vetor é uma estrutura de dados homogênea, onde:


• Os elementos ocupam posições contíguas na memória.
• Todos os elementos possuem o mesmo tipo de dado.
• O acesso aos elementos é feito por índices fixos.
• O tamanho do vetor geralmente é fixo e definido na alocação.

Exemplo em Linguagem C
Vetor de tamanho 5
LISTAS - PYTHON

• Em Python, utilizamos listas (list) em vez de vetores. As listas são


estruturas dinâmicas e heterogêneas, o que significa que:
• Podem armazenar diferentes tipos de dados (int, float, str, etc.).
• Possuem tamanho dinâmico, podendo crescer ou diminuir conforme
necessário.
• O acesso também é feito por índices.
• Internamente, são implementadas como arrays dinâmicos.
LISTAS - PYTHON
LISTAS
VETORES X LISTAS
VETORES X LISTAS
Linguagem C / Java

0 1 2 3 4 Estático

Python

0 1 2 3 4 Dinâmico
VETORES X LISTAS
Linguagem C / Java

0 1 2 3 4 Estático

Python

0 1 2 3 4 Dinâmico

0 1 2 3 4 5
VETORES X LISTAS
Linguagem C / Java

0 1 2 3 4 Estático

Python

0 1 2 3 4 Dinâmico

0 1 2 3 4 5

0 1 2 3 4 5 6
A PERGUNTA QUE NÃO QUER CALAR...
• Se a linguagem Python deriva da Linguagem C, como pode a Linguagem C
não implementar vetores dinamicamente?
A PERGUNTA QUE NÃO QUER CALAR...
• Se a linguagem Python deriva da Linguagem C, como pode a Linguagem C
não implementar vetores dinamicamente?
• Resposta:
• A Linguagem C implementa vetores dinamicamente, sim!! Porém, não de
forma automática como a Linguagem Python.
A PERGUNTA QUE NÃO QUER CALAR...
• Se a linguagem Python deriva da Linguagem C, como pode a Linguagem C
não implementar vetores dinamicamente?
• Resposta:
• A Linguagem C implementa vetores dinamicamente, sim!! Porém, não de
forma automática como a Linguagem Python.
• Quando digo de forma automática, estou dizendo que o compilador
Python é responsável por essa tarefa. Na Linguagem C o programador é
responsável por essa tarefa.
A PERGUNTA QUE NÃO QUER CALAR...
• Se a linguagem Python deriva da Linguagem C, como pode a Linguagem C
não implementar vetores dinamicamente?
• Resposta:
• A Linguagem C implementa vetores dinamicamente, sim!! Porém, não de
forma automática como a Linguagem Python.
• Quando digo de forma automática, estou dizendo que o compilador
Python é responsável por essa tarefa. Na Linguagem C o programador é
responsável por essa tarefa.
• Em Linguagem C, as informações guardadas no vetor DEVEM ser do mesmo
tipo, em Phyton não.
VETORES E LISTAS

• Ocupam espaços CONTÍGUOS na memória.


• Todos os elementos estão alocados lado a lado! Independente seja C ou Python.
VETORES E LISTAS

• Ocupam espaços CONTÍGUOS na memória.


• Todos os elementos estão alocados lado a lado! Independente seja C ou Python.
Criando listas em
Python
VETORES E LISTAS

• Ocupam espaços CONTÍGUOS na memória.


• Todos os elementos estão alocados lado a lado! Independente seja C ou Python.
Criando listas em
Python

Mapa
de
Memória
VETORES E LISTAS

• Ocupam espaços CONTÍGUOS na memória.


• Todos os elementos estão alocados lado a lado! Independente seja C ou Python.
Criando listas em
Python

Mapa
de
Memória
VETORES E LISTAS

• Ocupam espaços CONTÍGUOS na memória.


• Todos os elementos estão alocados lado a lado! Independente seja C ou Python.
Criando listas em
Python

Mapa
de
Memória
LISTAS ENCADEADAS
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS
• Em muitos cenários de programação, precisamos armazenar e
manipular grandes volumes de dados de maneira eficiente.
• Banco de dados da Amazon, Caixa Econômica, entre outros....
• Embora o Python tenha uma estrutura embutida chamada list, que
gerencia automaticamente o tamanho da coleção, entender listas
encadeadas é essencial para compreender como estruturas de
dados funcionam internamente e como otimizá-las para situações
específicas
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

POR QUE USAR LISTAS ENCADEADAS?


• Alocação dinâmica: Não é necessário definir um tamanho fixo no
início.
• Facilidade de inserção e remoção: Operações no meio da lista são
mais eficientes que em listas baseadas em arrays.
• Otimização de memória: Ao contrário dos arrays tradicionais, não
há alocação excessiva de memória.
• Estruturas avançadas: São a base para outras estruturas como
pilhas, filas e grafos.
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

POR QUE USAR LISTAS ENCADEADAS?


• Por outro lado, listas encadeadas possuem algumas desvantagens,
como:
• Maior uso de memória (devido aos ponteiros armazenados
junto com os dados).
• Acesso menos eficiente a elementos específicos (O(n) em busca
de um índice específico).
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

POR QUE USAR LISTAS ENCADEADAS?


• Conseguir alocar TODOS os elementos na memória. Porém, de
forma NÃO contígua. Ou seja, não lado a lado...
• Como fazer isso e saber qual elemento está depois do outro
elemento.....
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

POR QUE USAR LISTAS ENCADEADAS?


• Conseguir alocar TODOS os elementos na memória. Porém, de
forma NÃO contígua. Ou seja, não lado a lado...
• Como fazer isso e saber qual elemento está depois do outro
elemento.....
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

POR QUE USAR LISTAS ENCADEADAS?

8 5 3 2 9
7 8
3 2
1 9 6 1 8 6 2 5 7 4
4 2
4 4 2 0 2 7
5 3 2 9 7 1 0
3 7 5 3
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

POR QUE USAR LISTAS ENCADEADAS?

8 5 3 2 9
7 8
3 2
1 9 6 1 8 6 2 5 7 4
4 2
4 4 2 0 2 7
5 3 2 9 7 1 0
1 3 7 5 3
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

POR QUE USAR LISTAS ENCADEADAS?


• Conseguimos distribuir os elementos na memória, de forma NÃO
contígua.
• Precisamos saber quem vem depois de quem... Ou seja, que é o
próximo.
• Para que consigamos fazer isso, precisamos de uma estrutura que
armazene o valor/string e um ponteiro que guarde o endereço de
memória de quem vem depois.
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS
• Chamamos de NÓ ou NODO uma estrutura de dados que armazena
um valor e um ponteiro para o próximo nó.
• Cria um NÓ, usando conhecimento de dicionários.
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS
• Chamamos de NÓ ou NODO uma estrutura de dados que armazena
um valor e um ponteiro para o próximo nó.
• Cria um NÓ, somente UM NÓ, usando conhecimento de dicionários.

NO
informacao
prox
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS
• Precisamos conectar um nó ao outro.... Para darmos sequencia em
nossa lista encadeada.

NO1 NO2 NO3


informacao informacao informacao
prox prox prox

NULL
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS
• Precisamos conectar um nó ao outro.... Para darmos sequencia em
nossa lista encadeada.

NO1 NO2 NO3


informacao informacao informacao
prox prox prox

NULL

O NO que não olha para outro NO


aponta para NULL
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó na lista.
• Inicialmente a lista está vazia.
• NULL seria correspondente a “nada”/”vazio”/”zero”

lista

NULL
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó no início da lista.

lista novo Precisamos conectar


o nó na lista.
Em outras palavras,
NULL
informacao inserir o novo nó na
prox lista encadeada.

NULL
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó no início da lista.

lista E se tiver um novo nó?


Onde devemos
conectar?
informacao No início ou no final?
prox
NULL
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Analisando: E se tiver um novo nó? Onde devemos conectar? No início
ou no final?

lista

NULL

No início não precisamos percorrer todos os elementos da lista,


isto torna a inserção mais rápida!
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó no início da lista.

lista novo

informacao informacao
prox prox
NULL NULL

O 1º elemento passará a ser o segundo elemento da lista!


Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó no início da lista.

lista novo

informacao informacao
prox prox
NULL NULL

novo_no[“prox"] irá apontar para o 1º elemento


Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó no início da lista.

lista novo

informacao informacao
prox prox
NULL

novo_no[“prox"] irá apontar para o 1º elemento


novo_no[“prox”] = lista
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó no início da lista.

lista novo

informacao informacao
prox prox
NULL

lista = novo_no
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó no início da lista.

lista

informacao informacao
prox prox
NULL

lista = novo_no
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Funções criar_novo e inserir_no_inicio
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - IMPRIMIR


• Função imprimir_lista
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - TESTE


• Testando..... Vamos ampliar a lista inserindo mais elementos.
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Testando..... Vamos ampliar a lista inserindo mais elementos.
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - REMOÇÃO POR VALOR


• Para remover um NÓ na lista através do valor armazenado no NÓ.

lista

3 5 12 1 55 9
NULL
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - REMOÇÃO POR VALOR


• Para remover um NÓ na lista através do valor armazenado no NÓ.

lista

3 5 12 1 55 9
NULL

Removendo o NÓ com valor 12.


Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - REMOÇÃO POR VALOR


• Para remover um NÓ na lista através do valor armazenado no NÓ.

lista

3 5 12 1 55 9
NULL

Removendo o NÓ com valor 12.


Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - REMOÇÃO POR VALOR


• Função remover_no
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERE NO FINAL


• Para inserir no final da lista um NÓ, precisamos percorrer TODA a
lista até o último elemento.

lista

3 5 12 1 55 9
NULL
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERE NO FINAL


Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - TESTES....


LISTAS DUPLAMENTE ENCADEADAS
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS


• Cada nó da lista terá um ponteiro para o seu próximo e para o seu
anterior.

lista

NULL

Para todas as inserções e remoções precisamos SEMPRE atualizar


os 2 ponteiros (anterior e próximo)
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS


• Estrutura do NÓ contém 2 ponteiros.
• Cria um NÓ, usando conhecimento de dicionários.
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - INSERÇÃO


NO INÍCIO
• Conectar os nó no início da lista.

lista

informacao
NULL prox NULL
ant
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - INSERÇÃO


NO INÍCIO
• Conectar os nó no início da lista.

lista novo

informacao informacao
NULL prox NULL prox NULL
ant ant
NULL

O 1º elemento passará a ser o segundo elemento da lista!


Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - INSERÇÃO


NO INÍCIO
• Conectar os nó no início da lista.

lista novo

informacao informacao
prox prox
ant ant NULL
NULL
novo_no[“prox"] irá apontar para o 1º elemento
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó no início da lista.

lista novo

informacao informacao
prox prox
ant ant NULL
NULL
novo_no[“prox"] irá apontar para o 1º elemento
novo_no[“prox”] = lista
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó no início da lista.

lista novo

informacao informacao
prox prox
ant ant NULL
NULL
novo_no[“prox”] = lista
lista[“ant”] = novo
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - INSERÇÃO NO INÍCIO


• Conectar os nó no início da lista.

lista novo

informacao informacao
prox prox
ant ant NULL
NULL
novo_no[“prox”] = lista
lista[“ant”] = novo
lista = novo
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - INSERÇÃO


NO INÍCIO
• Funções criar_novo e inserir_no_inicio
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - IMPRIMIR


• Função imprimir_lista
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - TESTE


• Testando..... Vamos ampliar a lista inserindo mais elementos.
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - TESTE


• Testando..... Vamos ampliar a lista inserindo mais elementos.
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - REMOÇÃO


• Para remover um NÓ na lista através do valor armazenado no NÓ.

lista

1 8 3 6 80 12 NULL
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - REMOÇÃO NO INÍCIO


• Para remover um NÓ na lista através do valor armazenado no NÓ.

lista

1 8 3 6 80 12 NULL

Removendo o NÓ com valor 3.


Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS ENCADEADAS - REMOÇÃO NO INÍCIO


• Para remover um NÓ na lista através do valor armazenado no NÓ.

lista

1 8 3 6 80 12 NULL

Removendo o NÓ com valor 3.


Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - REMOVE


VALOR
• Função
remover_no
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - INSERE NO


FINAL
• Para inserir no final da lista um NÓ, precisamos percorrer TODA a
lista até o último elemento.

lista

1 8 3 6 80 12 NULL
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - INSERE NO


FINAL
Embora o Python tenha uma estrutura embutida muito poderosa chamada list, que gerencia automaticamente o tamanho da coleção, entender listas encadead

LISTAS DUPLAMENTE ENCADEADAS - TESTES....


LISTAS COM CABEÇA E LISTAS CIRCULARES
PESQUISAR
DÚVIDAS
LISTA DE EXERCÍCIOS 2
FÓRUM 2
QUESTIONÁRIO 2

Você também pode gostar