Você está na página 1de 5

Ficha 1

INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

DEPARTAMENTO DE TECN. DA INFORMAÇÃO E COMUNICAÇÃO


Ano Lectivo 2017
Disciplina: Algorítmos e Estruturas de Dados
Curso: Engenharia Informática e de Telecomunicaçoes
Ano/Semestre: 3º e Ano / 1º Semestre

______________
Aula # 1 (Teórica)

Introdução

Estruturas de dados

Este é um dos temas fundamentais da ciência da computação, utilizado nas mais variadas
áreas e para as mais variadas finalidades.

Definição

Em Ciência da computação, uma estrutura de dados é um modo particular de


armazenamento e organização de dados em um computador de modo que possam ser
usados de modo eficiente.

As estruturas de dados definem a organização, métodos de acesso e opções de


processamento para a informação manipulada pelo programa.

A definição da organização interna de uma estrutura de dados é tarefa do projetista da


estrutura, que define também qual o conjunto de procedimentos que podem ser usados

_____________________________________________________________________ 1
Março de 2017
INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

para manipular os dados na estrutura. É esta API1 (Application Programming Interface)


que determina a visão funcional da estrutura de dados, que é a única informação relevante
para um programador que vá utilizar uma estrutura de dados pré-definida.

Diferentes tipos de estrutura de dados são adequadas a diferentes tipos de aplicação e


algumas são altamente especializadas, destinando-se a algumas tarefas específicas. Por
exemplo, as B-trees são particularmente indicadas para a implementação de bases de
dados , enquanto que a implementação de compiladores geralmente requer o uso de
tabela de dispersão para a busca de identificadores.

Escolher uma estrutura de dados ideal pode tornar-se um problema difícil para uma
determinada solução. As pesquisas e estudos das estruturas de dados estão em constante
desenvolvimento, apesar disso, existem estruturas que têm se mostrado padrão, ou seja,
são clássicas.

São estruturas clássicas mais conhecidas as seguintes:

1.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 vetor é muito rápido, sendo considerado constante: o acesso aos elementos é feito
pelo seu índice no vetor. Porém, a remoção de elementos pode ser custosa se não for
desejável que haja espaços "vazios" no meio do vetor, pois nesse caso é necessário
"arrastar" de uma posição todos os elementos depois do elemento removido.

Essa é uma estrutura muito recomendada para casos em que os dados armazenados não
mudarão, ou pouco mudarão com o decorrer do tempo.

1
Conjunto de rotinas e padroes estabelecidos por um software para a utilização das suas funcionalidades
por programas aplicativos que não querem se envolver em detalhes da implementação, mas apenas usar
seus serviços.

_____________________________________________________________________ 2
Março de 2017
INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

2. Lista

É uma estrutura de dados linear. Uma lista ligada, também chamada de encadeada, é
linear e dinâmica, é composta por nós que apontam para o próximo elemento da lista,
com exceção do último, que não aponta para ninguém. Para compor uma lista encadeada,
basta guardar seu primeiro elemento.

3. Fila

As filas são estruturas baseadas no princípio FIFO (first in, first out), em que os
elementos que foram inseridos no início são os primeiros a serem removidos. Uma fila
possui duas funções básicas: ENQUEUE, que adiciona um elemento ao final da fila, e
DEQUEUE, que remove o elemento no início da fila. A operação DEQUEUE só pode
ser aplicado se a fila não estiver vazia, causando um erro de underflow ou fila vazia se
esta operação for realizada nesta situação.

4. Pilha

As pilhas são estruturas baseadas no princípio LIFO (last in, first out), na qual os dados
que foram inseridos por último na pilha serão os primeiros a serem removidos. Existem
duas funções que se aplicam a todas as pilhas: PUSH, que insere um dado no topo da
pilha, e POP, que remove o item no topo da pilha.

5. Árvores

Uma árvore é uma estrutura de dados em que cada elemento tem um ou mais elementos
associados, podendo definir-se uma árvore recursivamente como:

_____________________________________________________________________ 3
Março de 2017
INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

(a) uma estrutura (uma árvore);


(b) um nó (designado por raiz), que contém a informação a armazenar e um conjunto
finito de árvores (as sub-árvores).
(c) Não Existe árvores vazias, no minímo haverá um nó raiz(que não possui pai)

Cada árvore tem apenas uma raiz. Além disso, os elementos associados a cada nó são
habitualmente chamados de filhos desses nós. Os nós sem filhos de uma árvore são
chamados de folhas.

6. Árvores binárias

Uma árvore binária é uma árvore em que cada nó tem no máximo dois filhos. São muito
utilizadas como estruturas de buscas, como árvores de busca binária e árvores AVL.

No presente semestre falaremos de Estruturas de dados clássicas e algoritmos.

Estruturas de dados e algoritmos são temas fundamentais da ciência da computação,


sendo utilizados nas mais diversas áreas do conhecimento e com os mais diferentes
propósitos de aplicação. Sabe-se que algoritmos manipulam dados. Quando estes dados
estão organizados (dispostos) de forma coerente, caracterizam uma forma, uma estrutura
de dados. A organização e os métodos para manipular essa estrutura é que lhe conferem
singularidade.

As estruturas de dados são chamadas tipos de dados compostos que dividem-se em


homogêneos (vetores e matrizes) e heterogêneos (registros). As estruturas homogêneas
são conjuntos de dados formados pelo mesmo tipo de dado primitivo. As estruturas
heterogêneas são conjuntos de dados formados por tipos de dados primitivos diferentes
(campos do registro) em uma mesma estrutura.

_____________________________________________________________________ 4
Março de 2017
INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

Consulte:

Alguns Tipos de Dados em Java Paul E. Black (ed.), Data structure. Dictionary of
Algorithms and Data Structures. U.S. National Institute of
-int Standards and Technology, 2004

-float http://www.univasf.edu.br/~marcelo.linder/arquivos_ed1/au
las/aula1.pdf
Primitivos - double
http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTM
- boolean L/node10.html

- char. http://www.ic.unicamp.br/~tomasz/cursos/mc202/transp_28
9_309.pdf

http://pt.wikipedia.org/wiki/Estrutura_de_dados
-Classes
Referenciais http://pt.wikibooks.org/wiki/Algoritmos_e_Estruturas_de_D
-Interfaces ados

http://pt.wikibooks.org/wiki/Algoritmos_e_Estruturas_de_D
ados/O_que_s%C3%A3o_estruturas_de_dados%3F

TPC

Criar uma classe que implemente seguintes métodos

(a) insertOne(int element, int a[]) // inserir um elemento num determinado array de
inteiros

(b) insertAll (int list[], int a[]) // inserir os elementos do array “list” no array “a”,
invocando o metodo insertOne(element, a[]).

(c) ordenaCrescente(int a[])// ordena os elementos na forma crescente

(d) ordenaDecrescente (int a[])//ordena os elementos na forma decrescente

(e) remove(int element, int a[])// remove o elemento “element” no array “a”

(f)removeElement(int índex, int a[])//remove o elemento na posicao “índex” do array “a”

(g) outros métodos auxiliares

_____________________________________________________________________ 5
Março de 2017

Você também pode gostar