Você está na página 1de 22

Introduo a Estrutura

De Dados

Exportao de JARs para o eclipse


Introduo a Estrutura de Dados

Estrutura de Dados Lineares

Estruturas de dados so uma organizao de determinados dados para melhorar


sua manipulao.

Estruturas de dados lineares so estruturas de dados cujo sua organizao cada


elemento um aps o outro:

Exemplo: Vetor/Array

[1, 2, 6, 8, 6, 4]

Perceba que neste vetor todos os elementos seguem uma linha nica.

Exemplos de Estruturas de dados Lineares

Listas

So estruturas lineares organizadas como uma lista de coisas (Array e


ArrayLists).

Pilhas

So estruturas de dados onde o primeiro elemento inserido sempre o ltimo a


ser removido e o ltimo a ser inserido o primeiro a ser removido. (Chamadas a
funes, Pilha de Prato).

Exemplo: Chamadas a funes sempre criam uma pilha de chamadas de funes,


que quando est e grande demais gera um estouro de pilha terminando o programa
imediatamente.

Considere as funes: main, soma, e fimDeSoma, soma chama ela mesma


indefinidamente at que um dia ela chama fimDeSoma, que por sua vez termina a
sequncia de chamadas de funes, a partirda teremos uma sequncia de retornos das
funes chamadas a suas chamadoras.

Cada nova chamada funo coloca na pilha de chamada de funes uma


referncia a funo chamada.

Chamando funes
Pilha

Main()
Soma()
Soma()
Soma()
Soma()
fimDeSoma()

Quando chegar em fimdesoma a pilha ser desempilhada.

Pilha
Main()
Soma()
Soma()
Soma()
Soma()

Pilha
Main()
Soma()
Soma()
Soma()

Pilha
Main()
Soma()
Soma()
E isso continua at chegar na ltima funo. Com base nisso conclumos que
toda chamada de funo cria uma pilha.

Algumas funes recursivas como por exemplo uma funo que receba um vetor
e faa todas as somas possveis para cada um dos elementos pode nos dar uma viso
diferente de uma pilha. Quando desenhamos o processamento dela em um papel,
veremos que o resultado final dela algo como:

Perceba que o diagrama do 1 e do 2 no nos d a ideia de pilha, mas sim de uma


Arvore (Ver seo sobre arvores). De fato, poderamos pensar que isso uma arvore.
Mas na verdade o que temos so pilhas.

Sempre que o programa comea a retornar a partir da ltima chamada, ele acaba
em determinado ponto efetuando uma outra chamada, empilhando novamente.
Resultado temos vrias pilhas que no diagrama destes nos d a impresso de ser uma
arvore.

Filas

So estruturas de dados lineares onde o primeiro elemento inserido sempre o


primeiro a ser removido.
Estruturas de Dados no Lineares

So estruturas de dados onde a insero dos elementos no segue uma estrutura


reta como listas, filas e pilhas.

Exemplo:

Perceba que a caixinha do topo est associada a duas outras caixinhas. Logo ela
no linear, diferente das listas que teramos algo como:

Estruturas de Dados no Lineares - Arvores

So estruturas de dados no lineares onde os elementos seguem uma hierarquia,


tendo a topologia parecendo uma arvore de cabea para baixo.

Assim como uma arvore real, a estrutura de dados em arvore tambm possui
uma raiz e a partir dessa raiz nossa arvore se associara a outros elementos onde cada
elemento chamado de n ou nodo. A raiz chamada de nodo raiz, cada associao de
uma arvore chamada de galhos e cada um dos nodos nesses galhos pode conter outras
associaes, os nodos que no possuem associaes (Galhos) so chamados de folhas.
Todo elemento: Raiz, Folha, etc. so nodos.

Obs.: O objetivo deste arquivo apenas mostrar um pouco da teoria sobre estruturas de
dados, pois necessrio um pouco de conhecimento sobre elas para entender a AST
(Abstract Syntax Tree ou Arvore de Sintaxe Abstrata).
AST - Abstract Syntax Tree (Arvore de Sintaxe Abstrata)
AST a representao do cdigo fonte de alguma linguagem de programao
qualquer na forma de arvore. A AST considera apenas o essencial, veja:

x = 5 + y;

O ponto e vrgula (;) no final da expresso no ser capturado pela AST.

A AST tem algumas regras:

1. Tipos de variveis e localizao de cada declarao no cdigo so preservados.


2. Os identificadores e os valores atribudos devem ser armazenados para
instrues de atribuio.

Uso

usada por exemplo em compiladores. Estes fazem a anlise do cdigo fonte e


permitem por exemplo uma correo do mesmo eles at dizem a linha de um
determinado erro, porque respeitam as regras acima.

Exemplo:

#include<stdio.h>

Int main(void)

Int x, y;

x = 5 * 5;

Mas em vez do * o programador colocou um a

#include<stdio.h>

Int main(void)

Int x, y;

x = 5 a 5;
}

Quando o programador tentar compilar esse cdigo o compilador da linguagem


ou interpretador ir criar uma AST e encontrar esse erro, a AST ser concluda s que
ela exibira uma mensagem de erro mostrando onde est o erro e o tipo de erro ocorrido
aps a compilao.

Essa ideia da AST mais evidente quando se usam IDEs como o Eclipse por
exemplo, o eclipse enquanto o programa programado faz uma anlise a cada momento
do cdigo e j identifica automaticamente se existe um erro e j exibe uma anlise do
problema para o programador corrigir.

Exemplo de AST:

Ns no nos preocuparemos em construir um programa que gere essa AST, ns


faremos o uso das ferramentas: JSDT para Javascript, PyDev para Python e CDT para
C/C++.
JSDT: Javascript development tools.
CDT: C development tools.
PyDev: Python Development.

Cada uma dessas ferramentas constitui uma biblioteca, que uma juno de vrios
pacotes.

Exportaremos estas bibliotecas para o eclipse e utilizaremos suas classes.


Exportando JARs para o Eclipse
Perceba que temos vrios .jar.

Temos que jog-los no eclipse seno eles no serviro para muita coisa. E para poder
utiliz-losns teremos que fazer o seguinte.

Abrir o eclipse.
Clicar em file.

Selecionar new e clicar em other.


Selecionar Java Project.

Clicar em next, digitar o nome do projeto e depois clicar em finish, como abaixo.
Pronto, projeto criado, agora precisamos importar a biblioteca. Clicamos com o boto
direito do mouse em cima do projeto e depois clicamos em properties.

Vai abrir a seguinte tela.


Selecionaremos Java Build Path e depois Libraries.

Clicamos em add External JARs...


Procuraremos pelos .jar no computador e selecionaremos eles.

Obs.: No selecione pastas que podem existir perdidas dentro da pasta onde esto os
JARs, pode ocorrer problemas.

Clicaremos em abrir aps selecion-los.

Clicamos em Apply.
Clicamos em Order and Export.

Clicamos em Select All, depois em Apply e por ltimo em OK.


Perceba que no exemplo acima exportamos os arquivos.jar de uma pasta perdida
em nosso computador. Mas se fizermos isso e formos enviar nosso projeto paraGitHub,
os JARs no iro junto. E tambm desse modo o nosso projeto ficara desorganizado, e
se movermos as pastas dos JARs ou o projeto para outro lugar, teremos que fazer tudo
de novo.

Mas existe uma soluo para isso, s colocar a pasta dos JARs junto com o
projeto. E para isso faremos o seguinte:

1. Vamos at a pasta dos nossos JARs usando o Windows Explorer. De preferncia


renomeie a pasta com o nome lib. Pois quem olhar seu projeto saber que ali ter
os .jar.
2. Arraste a posta para o eclipse e solte-a em cima do projeto.
Arraste a pasta lib para o eclipse.
Clique em OK e espere o processor terminar.
Aps terminar, abrimos novamente a tela abaixo e clicamos em Add JARs...

Clicamos na setinha no lado esquerdo do nosso projeto. Vai abrir a tela abaixo.
Clicamos na setinha no lado esquerdo da pasta lib.
Selecionamos todos e apenas os .Jar, no selecione pastas que podem existir no meio
deles. Clique em OK, depois em Apply e repita o resto do processor mostrado
anteriormente.

Pronto! Aps isso seus JARs estaro configurados, e quando voc criar uma
classe Java voc poder utiliz-los.

Para aprender mais sobre as ferramentas do eclipse clique aqui.

Para o ordenamento de pastas no projeto utilizaremos o controlador de


dependncias chamado de Maven, clique aqui para conhec-lo.

Ser necessrio o Maven configurado para poder executar o extrator de


vocabulrio do Java.

Você também pode gostar