Lista: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 1:
{{ver desambiguação}}
 
Em [[ciência da computação]], uma '''lista''' ou '''sequência''' é uma [[Tipo Abstrato de Dado|estrutura de dados abstrata]] que implementa uma coleção ordenada de [[Valor (computação)|valores]], onde o mesmo valor pode ocorrer mais de uma vez. Uma instância de uma lista é uma representação computacional do conceito [[Matemática|matemático]] de uma [[Sequência (matemática)|sequência]] finita, que é, uma [[tupla]]. Cada instância de um valor na lista normalmente é chamado de um '''item''', '''entrada''' ou '''elemento''' da lista. Se o mesmo valor ocorrer várias vezes, cada ocorrência é considerada um item distinto.<ref name="projAlg"></ref>
 
[[Imagem:Singly linked list.png|thumb|direita|Uma estrutura de lista encadeada isoladamente, implementando uma lista com 3 elementos inteiros.]]
Linha 8:
As chamadas estruturas de lista ''estática''' permitem apenas a verificação e enumeração dos valores. Uma lista '''[[Objeto imutável|mutável]]''' ou '''dinâmica''' pode permitir que itens sejam inseridos, substituídos ou excluídos durante a existência da lista.
 
Muitas [[Linguagem de programação|linguagens de programação]] fornecem suporte para '''tipos de dados lista''' e possuem sintaxe e semântica especial para listas e operações com listas. Uma lista pode frequentemente ser construída escrevendo-se itens em sequência, separados por [[vírgula]]s, [[ponto e vírgula]]s ou espaços, dentro de um par de delimitadores como [[parêntese]]s '()', [[colchete]]s '[]', [[chave]]s '{}' ou [[chevron]]s '<>'. Algumas linguagens podem permitir que tipos lista sejam [[Índice (estruturas de dados)|indexados]] ou [[Corte de array|cortados]] como os [[Array|tipos vetor]]. Em [[Orientação a objetos|linguagens de programação orientada a objetos]], listas normalmente são fornecidas como [[Instância (ciência da computação)|instâncias]] ou subclasses de uma classe "lista" genérica. Tipos de dado lista são frequentemente implementados usando [[array]]s ou listas encadeadas de algum tipo, mas outras estruturas de dados podem ser mais apropriadas para algumas aplicações. Em alguns contextos, como em programação [[Lisp]], o termo lista pode se referir especificamente à lista encadeada em vez de um array.
 
É forma de organização através da enumeração de [[dado]]s para melhor visualização da [[informação]]. Em [[informática]], o conceito expande-se para uma [[estrutura de dados]] dinâmica, em oposição aos [[Array|vetor]]es, que são estruturas de dados estáticas. Assim, uma lista terá virtualmente infinitos elementos.
Linha 19:
*[[FIFO|Listas FIFO]], ou filas (''First In First Out'' - primeiro a entrar, primeiro a sair).
*[[LIFO|Listas LIFO]], ou pilhas (''Last In First Out'' - último a entrar, primeiro a sair).
 
== Características ==
Listas possuem as seguintes características:
* Tamanho da lista significa o número de elementos presentas na lista. Listas encadeadas tem a vantagem de ter um tamanho variável, novos itens podem ser adicionados, o que aumentando seu tamanho.<ref name="projAlg">{{cite book | author=M. T. Goodrich e R. Tamassia | title=Projeto de algoritmos | year=2004 | publisher=Bookman | location=Porto Alegre | isbn=978-85-363-0303-1}}</ref>
* Cada elemento numa lista possui um índice, um número que identifica cada elemento da lista. Usando o índice de um elemento da lista é possível buscá-lo ou removê-lo.<ref name="projAlg"></ref>
 
{{Referências}}
 
{{esboço-prog}}