Buscar

Função para lista vazia

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Função para lista vazia
Customização Dúvidas ao tutorUnidade 2 / Aula 1
O que são as
Estruturas de Dados
do tipo Lista?
100%
Função para lista vazia
Vídeoaula: Estruturas de Dados
Inserção de elemento em lista
Impressão de elementos em lista
Lista duplamente ligada
Vídeoaula: Operações com Listas
Ligadas – Inserção
Vídeoaula: Operações com Listas
Ligadas

Fe
ed
ba
ck
A primeira é uma das mais importantes funções que vamos implementar, é a função
que cria a própria lista. 
Vejamos o código desta função (código – Função para criar uma lista vazia) e,
depois, a explicaremos passo a passo.
Função para criar uma lista vazia. Fonte: elaborada pelos autores.
Basicamente, o que essa função faz é instanciar dinamicamente uma variável do tipo
struct “Lista” na memória (linha 2) e configurar os valores de seus campos. 
Unidade 2 / Aula 1
O que são as
Estruturas de Dados
do tipo Lista?
100%
Função para lista vazia
Vídeoaula: Estruturas de Dados
Inserção de elemento em lista
Impressão de elementos em lista
Lista duplamente ligada
Vídeoaula: Operações com Listas
Ligadas – Inserção
Vídeoaula: Operações com Listas
Ligadas
Fe
ed
ba
ck
O campo “inicio”, que é um ponteiro, deve apontar para NULL, uma vez que
estamos criando uma lista vazia (linha 4). 
NULL é uma palavra reservada da linguagem C, muito usada com ponteiros,
indicando que ele não está apontando para qualquer posição de memória válida do
computador.
Analogamente, o campo “tamanho” deve ser inicializado com o valor igual a 0
(zero) – linha 5. Feito isso, deve-se retornar o endereço da memória alocado para a
variável do tipo “Lista” (linha 7). 
Um ponto importante a destacar é que, antes de configurar os valores dos campos da
struct “Lista”, é preciso testar se a memória foi corretamente alocada para a lista
(linha 3). Isso é importante, pois caso a função “malloc” não consiga alocar o espaço
necessário para a lista, ela retornará o valor NULL.
Ao utilizar a função “malloc” quando criamos um ponteiro para uma variável do
tipo de struct, a forma de acesso aos campos da struct muda. Em vez de usarmos o
operador. (ponto), passamos a utilizar o operador → (seta), conforme pode ser visto
nas linhas 4 e 5 no código – Função para criar uma lista vazia.
Já podemos criar e utilizar nossa primeira lista simplesmente ligada. Mas, antes
disso, vamos implementar mais uma função, a saber, a função que verifica se a lista
está vazia ou não.
Unidade 2 / Aula 1
O que são as
Estruturas de Dados
do tipo Lista?
100%
Função para lista vazia
Vídeoaula: Estruturas de Dados
Inserção de elemento em lista
Impressão de elementos em lista
Lista duplamente ligada
Vídeoaula: Operações com Listas
Ligadas – Inserção
Vídeoaula: Operações com Listas
Ligadas
Fe
ed
ba
ck
Para sabermos se uma lista está vazia ou não, basta verificar se o ponteiro “inicio”
da lista está apontando para NULL. Para isso, é preciso ter acesso à lista, que será
passada por referência para a função.
Veja a seguir o código da função que verifica se a lista está vazia:
Função para verificar se uma lista está vazia. Fonte: elaborada pelos autores.
Dois destaques para essa função são necessários:
1. Primeiramente, estamos utilizando o tipo de dados bool, que não existe, por
padrão, na linguagem C. Então, para utilizá-lo, é preciso importar a biblioteca
Unidade 2 / Aula 1
O que são as
Estruturas de Dados
do tipo Lista?
100%
Função para lista vazia
Vídeoaula: Estruturas de Dados
Inserção de elemento em lista
Impressão de elementos em lista
Lista duplamente ligada
Vídeoaula: Operações com Listas
Ligadas – Inserção
Vídeoaula: Operações com Listas
Ligadas
Fe
ed
ba
ck
<stdbool.h>, como pode ser visto no código - Função para verificar se uma lista
está vazia, (linha 1). 
2. Outro ponto importante é o uso da instrução “assert()” (linha 4).
Essa instrução é implementada pela biblioteca <assert.h> (linha 2) e seu objetivo é
verificar o resultado de uma expressão lógica passada por parâmetro para ela. 
Caso o resultado da expressão seja verdadeiro, o fluxo do programa segue
normalmente, caso contrário, o programa é abortado (terminado) e um erro é
apresentado ao usuário. 
Isso é necessário porque, antes de realizar qualquer operação sobre a lista, é
importante verificar se o endereço de memória apontado por ela não é NULL.
_______
📝 Exemplificando
Há outra forma de se implementar a função “vazia()”. Pense um pouco e tente
implementar uma versão alternativa para essa função sem usar o ponteiro “inicio” da
lista.
A solução consiste em verificar o tamanho da lista. Se ele for igual a 0 (zero), é
porque a lista está vazia; caso contrário, a lista não está vazia.
Unidade 2 / Aula 1
O que são as
Estruturas de Dados
do tipo Lista?
100%
Função para lista vazia
Vídeoaula: Estruturas de Dados
Inserção de elemento em lista
Impressão de elementos em lista
Lista duplamente ligada
Vídeoaula: Operações com Listas
Ligadas – Inserção
Vídeoaula: Operações com Listas
Ligadas
Fe
ed
ba
ck
Implementação da função “vazia()”. Fonte: elaborado pelo autor.
_______
Agora podemos usar nossa lista. 
Vamos criar uma lista vazia e testar se ela realmente está vazia. Para isso, utilizamos
a função main(), como pode ser visto no código - Função para criar uma lista e testar
se ela está vazia.
Unidade 2 / Aula 1
O que são as
Estruturas de Dados
do tipo Lista?
100%
Função para lista vazia
Vídeoaula: Estruturas de Dados
Inserção de elemento em lista
Impressão de elementos em lista
Lista duplamente ligada
Vídeoaula: Operações com Listas
Ligadas – Inserção
Vídeoaula: Operações com Listas
Ligadas
Fe
ed
ba
ck
Função para criar uma lista e testar se ela está vazia. Fonte: elaborada pelos autores.
Na linha 2 criamos uma lista vazia, usando a função “criar()”, e armazenamos o
endereço dessa lista no ponteiro “minha_lista”. Nós usaremos esse ponteiro sempre
que quisermos realizar alguma operação em nossa lista. 
Logo após, nas linhas 3 a 7, estamos testando se a lista está vazia, por meio da
função “vazia()”, e imprimindo uma mensagem apropriada na tela.
Visualmente falando, o resultado da execução do código apresentado no código –
Função para criar uma lista – e testar se ela está vazia, é o que pode ser visto na
figura a seguir:
Unidade 2 / Aula 1
O que são as
Estruturas de Dados
do tipo Lista?
100%
Função para lista vazia
Vídeoaula: Estruturas de Dados
Inserção de elemento em lista
Impressão de elementos em lista
Lista duplamente ligada
Vídeoaula: Operações com Listas
Ligadas – Inserção
Vídeoaula: Operações com Listas
Ligadas
Fe
ed
ba
ck
Ilustração de uma lista ligada vazia. Fonte: elaborada pelos autores.
O código completo da nossa ED lista simplesmente ligada até o momento pode ser
visto a seguir, utilizando a ferramenta Paiza.io.
Unidade 2 / Aula 1
O que são as
Estruturas de Dados
do tipo Lista?
100%
Função para lista vazia
Vídeoaula: Estruturas de Dados
Inserção de elemento em lista
Impressão de elementos em lista
Lista duplamente ligada
Vídeoaula: Operações com Listas
Ligadas – Inserção
Vídeoaula: Operações com Listas
Ligadas
Fe
ed
ba
ck
https://paiza.io/projects/_SNu-ITUfeEaaaF8ivM94Q
Avalie este conteúdo Escolha de 1 a 5 estrelas
Unidade 2 / Aula 1
O que são as
Estruturas de Dados
do tipo Lista?
100%
Função para lista vazia
Vídeoaula: Estruturas de Dados
Inserção de elemento em lista
Impressão de elementos em lista
Lista duplamente ligada
Vídeoaula: Operações com Listas
Ligadas – Inserção
Vídeoaula: Operações com Listas
Ligadas
Fe
ed
ba
ck
Conteúdo anterior Próximo conteúdoUnidade 2 / Aula 1
O que são as
Estruturas de Dados
do tipo Lista?
100%
Função para lista vazia
Vídeoaula: Estruturas de Dados
Inserção de elemento em lista
Impressão de elementos em lista
Lista duplamente ligada
Vídeoaula: Operações com Listas
Ligadas – Inserção
Vídeoaula: Operações com Listas
Ligadas
Fe
ed
ba
ck

Continue navegando