






Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Listas Duplamente encadeadas
Tipologia: Notas de estudo
1 / 10
Esta página não é visível na pré-visualização
Não perca as partes importantes!







1
Curso Superior de Tecnologia em Telemática Programação e Estruturas de Dados
Copyright© Prof. César Rocha [email protected]
ß Organização e implementação, características, vantagens e desvantagens, regras de utilização, operações básicas e os algoritmos de implementação
ß Contudo, tenta superar algumas limitações encontradas no TAD supracitado
/* Parâmetros: lista = a lisdado = passa Retorno: 1 em caso de suceposição = pos */ int removerElemento(TListaEnc* TListaEnc aux; TListaEnc anterior; int contador; // verifica se a lista esta v if(listaVazia(lista)) return
Assim, mesmo quando sabíamos qual elemento íamos retirar,Assim, mesmo quando sabíamos qual elemento íamos retirar, tínhamos que percorrer a lista, elemento por elemento, atétínhamos que percorrer a lista, elemento por elemento, até encontrarmos o elemento anterior.encontrarmos o elemento anterior. Isso se deve porque, dado um elemento, não tínhamos comoIsso se deve porque, dado um elemento, não tínhamos como acessar diretamente o seu elemento anterior (ou antecessor)acessar diretamente o seu elemento anterior (ou antecessor) para redirecionar o ponteiro.para redirecionar o ponteiro. Note, na função de remoção, que a solução encontrada foiNote, na função de remoção, que a solução encontrada foi declarar uma variável somente para podermos guardar odeclarar uma variável somente para podermos guardar o endereço do nó anterior ao elemento a ser removido da lista.endereço do nó anterior ao elemento a ser removido da lista.
5
ß Semelhante à lista encadeada, mas contém dois ponteiros (ou links) na estrutura do nó ß Cada elemento agora tem um ponteiro para o próximo elemento e um ponteiro para o seu elemento anterior
ß ß GraficamenteGraficamente
ß O primeiro nó não possui elemento anterior (o ponteiro do elemento anterior terá valor NULL)
L João Maria Ana Edu
ß estrutura contém os campos dado, proximo e anterior
ß Onde:
_/ estruturação /_ typedef struct nolista { int dado; struct nolista proximo; struct nolista anterior; }no; typedef no* TListaDupEnc;**
_/ estruturação /_ typedef struct nolista { int dado; struct nolista proximo; struct nolista anterior; }no; typedef no* TListaDupEnc;**
_/ estruturação /_ typedef struct nolista { int dado; struct nolista proximo; }no; typedef no TListaEnc;**
_/ estruturação /_ typedef struct nolista { int dado; struct nolista proximo; }no; typedef no TListaEnc;**
*TListaDupEnc p
Onde: Onde: p-p->dado;>dado; p-p->>proxprox;; p-p->ant;>ant;
ant dado prox
å criarcriar uma lista vazia ç verificar se uma lista está vaziaestá vazia é obter o tamanhotamanho da uma lista è obterobter o elementoelemento de uma determinada posição na lista ê obter a posiçãoobter a posição onde se encontra um determinado elemento ë inserir um novo elementoinserir um novo elemento numa determinada posição na lista í removerremover um elemento de uma determinada posição na lista
ß Este é apenas um dos assuntos abordados na prova!