Você está na página 1de 19

UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE

FACULDADE DE CIÊNCIAS E TECNOLOGIAS DE INFORMAÇÃO

Curso: Licenciatura em Desenvolvimento de Software

ESTRUTURA DE DADOS E
ALGORÍTMOS
10-04-2024

10-04-2024 M. S 1
USTM – FCTI/23B EDA

Estrutura de Dados e Algorítmos

 Arrays
 Filas
 Pilhas

10-04-2024 M. S 2
USTM – FCTI/23B EDA

Estrutura de Dados e Algorítmos


 Estruturas de dados e algoritmos estão intimamente ligados:
– não se pode estudar estruturas de dados sem considerar os algoritmos
associados a elas,
– assim como a escolha dos algoritmos em geral depende da representação e da
estrutura dos dados.
 Para resolver um problema é necessário escolher uma abstração da realidade, em
geral mediante a definição de um conjunto de dados que representa a situação
real.

10-04-2024 M. S 3
USTM – FCTI/23B EDA

Estrutura de Dados e Algorítmos


 A escolha da representação dos dados é determinada, entre outras, pelas
operações a serem realizadas sobre os dados.

Considere a operação de adição:


 Para pequenos números, uma boa representação é por meio de barras verticais
(caso em que a operação de adição é bastante simples).
 Já a representação por dígitos decimais requer regras relativamente complicadas,
as quais devem ser memorizadas.

10-04-2024 M. S 4
USTM – FCTI/23B EDA

Estrutura de Dados e Algorítmos


 Entretanto, quando consideramos a adição de grandes números é mais fácil a
representação por dígitos decimais (devido ao princípio baseado no peso relativo
da posição de cada dígito).

10-04-2024 M. S 5
USTM – FCTI/23B EDA

Estrutura de Dados
 Organização ou disposição de dados de forma coerente e estruturada.

 São a organização e os métodos que manipulam determinada estrutura que


lhe conferem singularidade.

A escolha de uma estrutura de dados apropriada pode tornar um problema


complicado em um de solução trivial.

Os dados são manipulados pelos algoritmos.

10-04-2024 M. S 6
USTM – FCTI/23B EDA

Algorítmo
É um conjunto finito de instruções, que se seguido leva a execução de acções concretas.

Para analisar um algoritmo é necessário ter-se em conta o seguinte:

1 O tempo de processamento dum programa como função de seus dados de entrada;

2 O espaço de memoria máxima ou total requerida para os dados do programa;

3 O comprimento total do código do programa;

4 Se o programa chega correctamente ao resultado desejado;

5 A complexidade do programa. Por exemplo: se é fácil de ler, entender e;

6 A robustez do programa. Por exemplo, como ele lida com entradas inesperadas.

10-04-2024 M. S 7
USTM – FCTI/23B EDA

Estruturas de dados clássicas:

1. Vectores ou Arrays

 Vectores ou Arrays, são estruturas de dados lineares e estáticas, isto é, são

compostas por um número fixo (finito) de elementos de um determinado tipo

de dados.

 O tempo de acesso aos elementos de um array é muito rápido, sendo

considerado constante: os elementos são acedidos pelo seu índice no vector.

10-04-2024 M. S 8
USTM – FCTI/23B EDA

Estruturas de dados clássicas:


1. Vectores ou Arrays

 A remoção de elementos pode ser custosa se não for desejável que haja espaços

"vazios" no meio do vector, pois nesse caso é necessário "arrastar", uma posição, todos

os elementos depois do elemento removido.

 Esta é uma estrutura muito recomendada para casos em que os dados armazenados

não mudarão ou pouco mudarão com o tempo.

10-04-2024 M. S 9
USTM – FCTI/23B EDA

Estruturas de dados clássicas:


Declaração de um Array [for]

10-04-2024 M. S 10
USTM – FCTI/23B EDA

Estruturas de dados clássicas:


Declaração de um Array [for]

Saída

10-04-2024 M. S 11
USTM – FCTI/23B EDA

Estruturas de dados clássicas:


Percorrendo um Array [for]

No exemplo anterior a escrita e leitura do array foram feitas manualmente,


atribuindo os valores e depois chamar o V[] com cada índice para poer exibir.

isso não é eficaz quando o tamanho do array é grande.


Assim sendo, usaremos a função Scanner para ler os dados apartir do console
e o loop for para pegar n elementos e exibir.

10-04-2024 M. S 12
USTM – FCTI/23B EDA

Estruturas de dados clássicas:


Percorrendo um Array [for]

No exemplo anterior a escrita e leitura do array foram feitas manualmente,


atribuindo os valores e depois chamar o V[] com cada índice para poer exibir.

isso não é eficaz quando o tamanho do array é grande.


Assim sendo, usaremos a função Scanner para ler os dados apartir do console
e o loop for para pegar n elementos e exibir.

10-04-2024 M. S 13
USTM – FCTI/23B EDA

Estruturas de dados clássicas:


Percorrendo um Array [for]

10-04-2024 M. S 14
USTM – FCTI/23B EDA

Estruturas de dados clássicas:


2. Listas
 Uma lista ligada é uma estrutura de dados linear e dinâmica. Ela é composta
por células que apontam para o próximo elemento da lista.
 Para "ter" uma lista ligada, basta guardar seu primeiro elemento, e seu
último apontar para uma célula nula. O esquema a seguir representa uma
lista ligada com 5 elementos:

Célula 1 ---> Célula 2 ---> Célula 3 ---> Célula 4 ---> Célula 5 ---> (Nulo)

10-04-2024 M. S 15
USTM – FCTI/23B EDA

Estruturas de dados clássicas:


3. Pilha
 São estruturas baseadas no princípio LIFO (Last In, First Out), onde os últimos
dados a serem inseridos, são os primeiros a serem removidos.

 Existem 4 funções que se aplicam a todas as pilhas:


TOP: acessa-se o elemento posicionado no topo da pilha;
PUSH: insere um novo elemento no topo da pilha;
POP: remove o elemento do topo da pilha.
PULL:altera o elemento posicionado no topo da pilha;

10-04-2024 M. S 16
USTM – FCTI/23B EDA

Estruturas de dados clássicas:


4. Árvores
É uma estrutura de dados em que cada elemento tem zero ou mais elementos
associados, podendo definir-se uma árvore recursivamente como:
 1. uma estrutura vazia (uma árvore vazia);

 um nó (designado por raiz), que contém a informação a armazenar e um


conjunto finito de árvores (as sub-árvores).
 Cada árvore tem apenas uma raiz. Além disso, os elementos associados a
cada nó são comumente chamados de filhos desses nós. Os nós sem filhos são
chamados de folhas.

10-04-2024 M. S 17
USTM – FCTI/23B EDA

Estruturas de dados clássicas:


4. Árvores
Árvores binárias: Uma árvore binária é uma árvore em que cada nó tem no
máximo dois filhos. Existem também Árvore de busca binária e seu
balanceamento através de árvores AVL.

10-04-2024 M. S 18
USTM – FCTI/23B EDA

Estruturas de dados clássicas:

 As listas, pilhas e árvores serão aprofundadas nos capítulos subsequentes.

10-04-2024 M. S 19

Você também pode gostar