Este documento discute Skip Lists, que são estruturas de dados probabilisticamente balanceadas que podem ser usadas como alternativa para árvores balanceadas. Skip Lists usam algoritmos mais simples para pesquisa, inserção e remoção do que árvores balanceadas. O documento também descreve como os algoritmos de Skip List permitem que múltiplos processadores atualizem a estrutura de dados simultaneamente de forma mais simples do que algoritmos de árvores balanceadas.
Descrição original:
ois de enviar um documento aprovado, você poderá baixar o documento
Este documento discute Skip Lists, que são estruturas de dados probabilisticamente balanceadas que podem ser usadas como alternativa para árvores balanceadas. Skip Lists usam algoritmos mais simples para pesquisa, inserção e remoção do que árvores balanceadas. O documento também descreve como os algoritmos de Skip List permitem que múltiplos processadores atualizem a estrutura de dados simultaneamente de forma mais simples do que algoritmos de árvores balanceadas.
Este documento discute Skip Lists, que são estruturas de dados probabilisticamente balanceadas que podem ser usadas como alternativa para árvores balanceadas. Skip Lists usam algoritmos mais simples para pesquisa, inserção e remoção do que árvores balanceadas. O documento também descreve como os algoritmos de Skip List permitem que múltiplos processadores atualizem a estrutura de dados simultaneamente de forma mais simples do que algoritmos de árvores balanceadas.
Docente: Discentes: António Nhica Luís Chulane Muchanga João Américo Júnior Alcino José
Pemba, Outubro de 2018
As SkipLists usam balanceamento probabilístico em vez de balanceamento estritamente imposto e, como resultado, os algoritmos para inserção e exclusão em SkipLists são muito mais simples e significativamente mais rápidos do que os algoritmos equivalentes para árvores equilibradas. Segundo (William Pugh) Listas de pulos são estruturas de dados que podem ser usadas no lugar de árvores balanceadas. As SkipLists usam balanceamento probabilístico em vez de balanceamento estritamente imposto e, como resultado, os algoritmos para pesquisa, inserção e exclusão em SkipLists são muito mais simples e significativamente mais rápidos do que os algoritmos equivalentes para árvores equilibradas. As árvores Binárias podem ser usadas para representar tipos de dados abstractos como dicionários e listas ordenadas. Eles funcionam bem quando os elementos são inseridos em uma ordem aleatória. Diferente de Algumas sequências de operações, como inserir os elementos em ordem, produzem estruturas de dados degeneradas que dão um desempenho muito ruim. Podemos precisar examinar cada nó da lista ao pesquisar uma lista encadeada. Se a lista estiver armazenada em ordem todos os outros nós da lista também tem um ponteiro para o nó dois à frente da lista. Temos que examinar a partir de n / 2 + 1 nós (onde n é o comprimento da lista). Esta estrutura de dados pode ser usada para busca rápida, mas a inserção e exclusão seria impraticável. Um nó que possui k ponteiros para frente é chamado de nó k de nível. Esta sessão fornece algoritmos para procurar, inserir e excluir elementos em um dicionário ou tabela de símbolos. A operação Insert associa uma chave especificada com um novo valor (inserindo a chave se já não estivesse presente). Ver exemplo parte pratica Um elemento NIL é alocado e recebe uma chave maior que qualquer chave legal. Todos os níveis de todas as listas ignoradas são finalizados com o NIL. Os Nós procura por um elemento percorrendo ponteiros que não ultrapasse o nó que contém o elemento que está sendo procurado. Quando não houver mais progresso pode ser feito no nível actual de ponteiros para frente, a busca se move até o próximo nível. O tempo necessário para encontrar um elemento é proporcional ao comprimento do caminho de pesquisa, que é determinado pelo padrão em que elementos com diferentes os níveis aparecem à medida que percorremos a lista. O grupo descreveu um conjunto de algoritmos que permitem múltiplos processadores actualizar simultaneamente uma lista de pulos na memória. Esses algoritmos são muito mais simples que concorrentes algoritmos de árvore balanceada. Eles permitem um número ilimitado de leitores e n escritores ocupados em uma lista de saltos de n elementos com muito tempo de execução. Veja como funciona o Skip Lists no NetBeans, para melhor percepção: