Você está na página 1de 4

Universidade do Extremo Sul Catarinense

Curso de Ciência da Computação


Disciplina: Estrutura de Dados I
Professor: Marta Adriana Machado da Silva
marta@unesc.net

Listas Lineares

Uma lista é uma forma de agrupar itens com a finalidade de melhorar sua manipulação.

Exemplos:
• lista de itens que devem ser comprados em um supermercado
• lista de convidados para um casamento
• lista de aviões que devem decolar no aeroporto
• lista de processos no estado pronto, de um certo sistema operacional, esperando pelo
uso do processador
• lista de serviços de impressão (spooled file) aguardando pela liberação de uma
impressora física.

É a propriedade seqüencial de uma lista linear, que é a base para a sua definição e para o seu
uso, ou seja, em uma lista linear existe um início, onde está o primeiro elemento; e um final, onde
encontramos um último elemento.

A disciplina de acesso, ou seja, a forma pela qual se realizam as operações de inserção e de


remoção de elementos nas listas é o que determina algumas classificações das listas lineares.

Pilha

Listas Lineares Fila/Fila Circular/Fila de Prioridade

Deque

Um deque (“Double-Ended QUEue”) é uma lista linear onde as operações de inserção e


remoção podem ser efetuadas tanto no início quanto no final da lista linear.

Considera-se que a Lista Linear é uma estrutura que permite representar um conjunto de
elementos, de forma a preservar a relação de ordem linear entre eles.
Principal propriedade estrutural das listas

“Seus elementos podem ser ordenados de maneira linear de acordo com suas posições na lista”.

Pode-se definir uma lista como um conjunto de n >= 0 elementos (nós), x1, x2, x3, ... , xn,
organizados de tal forma que sua estrutura reflete diretamente as posições relativas dos
elementos que compõem a lista.

Supondo n >= 0, onde n representa o número de nós, tem-se:

• x1 : é o primeiro elemento da lista;


• xn: é o último elemento da lista;
• e, para cada i, 1 < i < n, o elemento xi é precedido pelo elemento xi-1, e seguido por xi+1.

Quando n = 0, a lista é denominada vazia.

O número de elementos de uma lista é denominado comprimento ou tamanho da lista.

Sobre as listas, podem ser realizadas as seguintes funções:

• Criação de uma lista linear vazia;


• Acesso ao i-ésimo elemento de uma lista para examiná-lo ou para alterá-lo;
• Inserção de um novo elemento antes(ou depois) do i-ésimo elemento de uma lista linear;
• Remoção do i-ésimo elemento de uma lista linear;
• Cópia de uma lista linear;
• Combinação (mesclagem de duas ou mais listas lineares em uma única lista linear);
• Particionamento (quebra) de uma lista linear em duas ou mais listas lineares;
• Determinação do tamanho de uma lista linear;
• Ordenação dos elementos de uma lista linear;
• Localização em uma lista linear de um elemento com uma determinada informação;
• Exclusão de uma lista linear, ............

Alocação de Memória na utilização de Listas Lineares

Pode ser realizada de duas formas:

• estática: o espaço de memória ocupado pelas variáveis é determinado no momento da


compilação;

• dinâmica: o espaço de memória ocupado pelas variáveis é determinado durante a


execução do programa.
Formas de acesso aos elementos de uma lista linear
• Sequencial: assume-se que nesse tipo de alocação, os elementos de uma lista linear
estão posicionados em células de memórias consecutivas, uma após a outra.

• Encadeada: nesse tipo de alocação de memória, são utilizadas quaisquer células (não
necessariamente consecutivas) para guardar os elementos da lista, o que implica que,
para preservar a relação de ordem linear da lista, cada elemento armazena sua
informação e também o endereço da próxima célula de memória válida.

Operações primitivas que manipulam as listas

TAD LISTAS LINEARES

dados Inserir Excluir dados


Elemento ...... elemento

a) Inicializar uma lista


b) Testar se uma lista está vazia
c) Testar se uma lista está cheia
d) Inserir um elemento
e) Excluir um elemento
f) Exibir os elementos inseridos na lista
Representação em C

Pode-se representar listas lineares utilizando vetores e estrutura.

Nesse tipo de representação seqüencial, que utiliza a alocação de memória estática, a


organização da Lista Linear é definida por uma struct de nome list, descrita no exemplo abaixo:

Em C:

#define tam 10

struct list
{
int ultimo;
int elemento[tam];
};

Que poderá ser declarada da seguinte maneira:

int main()
{
list lista;
}

Na organização anterior, o campo ultimo é utilizado para saber-se em qual posição encontra-se
inserido o último elemento da lista.

Operações (funções primitivas)

• Iniciando (criando) uma lista: Uma lista deve ser iniciada antes do início de sua
utilização, de forma a se representar que a lista não possui nenhum elemento (vazia).
Para indicar que uma lista está vazia atribui-se –1 ao campo ultimo;

• Inserindo um elemento: Só é possível executar a operação de inserção de um elemento


novo em uma lista, se esta comportar a entrada de um novo elemento (não estiver cheia);

• Excluindo um elemento: Para excluir um elemento de uma lista, é necessário que esse
elemento exista. Não é possível realizar a operação de exclusão de um elemento da lista,
caso a lista esteja vazia;

• Consultando os elementos da lista: Só é possível consultar os elementos de uma lista


se a mesma não estiver vazia;

Você também pode gostar