26
Visão geral Apresentação da disciplina: Tipos de dados abstratos. Listas e seus casos específicos (pilha e fila). Recursividade. Algoritmos de pesquisa em listas. Classificação. Conceitos introdutórios sobre árvores e grafos. Objetivos: Capacitar os alunos a reconhecer e desenvolver e implementar as estruturas de dados FIFO LIFO, bem alocação dinâmica de memória utilizados e os processos compreendidos nas etapas de busca de ordenação de valores. Conteúdo Programático: 1. Listas Lineares - Alocação Sequencial 1.1. Fila 1.2. Pilha 1.3. Fila Circular 2. Lista Lineares – Alocação Encadeada 2.1. Ponteiros e Apontadores 3. Alocação dinâmica de memória 3.1. Listas lineares simplesmente encadeadas – Operações de inclusão e exclusão à direita e á esquerda 3.2. Listas lineares duplamente encadeadas – Operações de inclusão e exclusão à direita e á esquerda 4. Recursividade 4.1. Aplicação de Recursividade. 5. Depuração de código.

Web Aulas 1 e 2

Embed Size (px)

Citation preview

Viso geral

Apresentao da disciplina:

Tipos de dados abstratos. Listas e seus casos especficos (pilha e fila). Recursividade. Algoritmos de pesquisa em listas. Classificao. Conceitos introdutrios sobre rvores e grafos.

Objetivos:

Capacitar os alunos a reconhecer e desenvolver e implementar as estruturas de dados FIFO LIFO, bem alocao dinmica de memria utilizados e os processos compreendidos nas etapas de busca de ordenao de valores.

Contedo Programtico:

1. Listas Lineares - Alocao Sequencial1.1. Fila1.2. Pilha1.3. Fila Circular2. Lista Lineares Alocao Encadeada2.1. Ponteiros e Apontadores3. Alocao dinmica de memria3.1. Listas lineares simplesmente encadeadas Operaes de incluso e excluso direita e esquerda3.2. Listas lineares duplamente encadeadas Operaes de incluso e excluso direita e esquerda4. Recursividade4.1. Aplicao de Recursividade.5. Depurao de cdigo.5.1. Definir ponto de inicio para a depurao5.2. Seqncias de execuo5.3. Avaliao de Expresses5.4. Painel de armazenamento de variveis6. Introduo a rvores e Grafos6.1. rvores Binriasrvores de Pesquisa

Metodologia:

Os contedos programticos ofertados nessa disciplina sero desenvolvidos por meio dasTele-Aulasde forma expositiva e interativa (chat tira dvidas em tempo real),Aula AtividadeporChatpara aprofundamento e reflexo eWebAulasque estaro disponveis noAmbiente Colaborar, compostas de contedos de aprofundamento, reflexo e atividades de aplicao dos contedos e avaliao. Sero tambm realizadas atividades de acompanhamento tutorial, participao emFrum, atividades prticas e estudos independentes (auto estudo) alm doMaterial didticopor disciplina.

Avaliao Prevista:

O sistema de avaliao da disciplina compreende em assistir a tele-aula, participao no frum, produo de texto/trabalho noportflio, realizao de duas avaliaes virtuais, uma avaliao presencial embasada em todo o material didtico, tele-aula ewebaula da disciplina.

Web Aula 1Introduo a Listas Lineares de Fila por Alocao Sequencial, utilizando teste de mesa para melhor compreenso.

Implementao das operaes de insero, pesquisa, modificao e excluso, em uma lista linear de fila por alocao sequencial. Insero: da varivel Y para V ..............YV Respeitando a regra de fila sempre no final.

Excluso: de V para varivel Y ............YV Respeitando a regra de fila sempre no incio

Pesquisa: localiza varivel Y em V .......Y?V Respeitando a regra de fila a partir do incio

Modificao: localiza varivel Y em V; troca valor de V pela varivel XXV ? VUm exemplo de Insero da varivel Y para V ..............YV

se FIM = n entoOVERFLOW; seno FIM := FIM +1; V[FIM] := Y; (onde Y = Felipe) se FIM = 1 ento COMEO := 1; fim se;

Segue abaixo a tela inicial do nosso algoritmo, onde encontraremos valores para Fim = 3, Y= Felipe e Comeo = 1.

Prximo passo: Fim comea com valor 3 e N com valor 4. Como no so iguais, no teremos erro de fim de fila overflow. Ento, como no final de fila: Fim ser 3 mais 1, ficando Fim = 4. Observe na figura abaixo.

ltimo passo: V[FIM] := Y , ou seja, V[4] := Felipe (onde V[4] indica a quarta posio do vetor da fila) E se Fim fosse 1, iria atribuir 1 para a varivel comeo se FIM = 1, ento, COMEO := 1.(neste primeiro exemplo, esta condio no ser atendida, pois Fim est valendo 4 e no 1).

Exemplo: Insero da varivel Y para V -YVcom Overflowse FIM = n ento OVERFLOW; seno FIM := FIM +1; V[FIM] := Y; (onde Y = Felipe) se FIM = 1 ento COMEO := 1; fim se;Utilizando o nosso algoritmo, ainda podemos avaliar que a varivel Fim est iniciando com valor 4, e N tambm tem valor 4. Ento, seFIM = n, teremos a situao deOVERFLOW;

Exemplo: de YV para 1 elementoYVse FIM = n ento OVERFLOW; seno FIM := FIM +1; V[FIM] := Y; (onde Y = Felipe) se FIM = 1 ento COMEO := 1; fim se;Primeiro passo: onde Fim = 0, ento Fim = N no, pois N igual a 4.

Passo 2 Fim ir receber 0 + 1, ficando com valor Fim = 1.

[FIM] := Y , ou seja, V[1] := Felipe (onde V[1] indica a primeira posio do vetor da fila)

Note que iremos, ento, na condio ainda no explorada, se FIM = 1 ento Comeo := 1

Um exemplo de Excluso: de V para varivel Y YV

se FIM = 0 ento UNDERFLOW; seno Y:= V[COMEO]; COMEO := COMEO + 1; se COMECO>FIM ento COMEO := 0; FIM := 0; fim se fim se;

Se o Fim for igual a zero, ento teremos um underflow, ou seja, no h nada na fila. Neste exemplo inicial, no temos situao de underflow.Siga o primeiro modelo da figura esquerda.

Situao inicial do nosso algoritmo, ento, como fim no zero,

Siga o modelo da figura direita.

Primeiro, Y ir receber o valor encontrado no vetor na posio 1 que o valor da varivel comeo.

se COMEO>FIM, ento, COMEO := 0 e FIM := 0 como comeo no maior,eufim ainda no ir satisfazer esta condio.

A partir da figura da sua direita, execute o algoritmo mais duas vezes e nos encaminhe o teste de mesa da forma apresentada acima.

Execute o mesmo algoritmo, mas iniciando com a varivel COMEO = 3 e FIM = 3. Nos encaminhe o teste de mesa da forma apresentada acima.

Construa um algoritmo de insero e outro de excluso de nodos de uma fila de n elementos, de tal forma que a fila cresa para frente, ou seja, da ensima posio para a primeira.

Grande inconveniente da estrutura de filaSituaes de OVERFLOW podem ocorrer com a fila praticamente vazia;Motivo: no aproveitamento, deixando posies vazias (sem contedo).Web Aula 2Introduo Pilha Duplamente Encadeada, usando teste de mesa para melhor compreenso.Na estrutura virtual de pilha: As incluses so feitas no topo; As excluses so feitas no topo; A consulta feita partir do topo; Insero: da varivel Y para PILHA ..............YPILHAExcluso: de PILHA para varivel Y .............YPILHAPesquisa: localiza varivel Y na PILHA ........Y?PILHAModificao: localiza varivel Y em PILHA; troca valor de PILHA pela varivel X ............XY?PILHAYPILHA-Incluso

Vamos avaliar o algoritmo abaixo, com teste de mesa: aloc P; P.INFO := Y; P.PROX := TOPO; TOPO := P;Observe a tela inicial, antes da execuo do algoritmo acima. Para acompanhar o passo a passo, siga asfechas.

Passo 1:aloc P;

Passo 2:P.INFO := Y;

Passo 3:P.PROX := TOPO;

Passo 4:TOPO := P;

Note que a fecha de relacionamento do TOPO, de Orlando passou para Aberto, pois Alberto de fato o topo, o ltimo elemento da pilha.

YPILHA-Excluso

se TOPO=L ento UNDERFLOW; seno Y:= TOPO.INFO; P:= TOPO; TOPO:= TOPO.PROX; lib P;fim se;

Observe novamente o passo-a-passo.Observe a tela ao lado.Indica a tela inicial antes que o algoritmo se inicie.

Passo 1: Verifica se a pilha est vazia. Como no est neste momento, executa o comando Y:= TOPO.INFO;Este atribui o valor ao nodo topo da lista, na varivel Y.

Passo 2: P ir receber o topo que, neste momento, Orlando.P:= TOPO;

Passo 3: Topo passa a ser o prximo nodo depois do Orlando, j que este o nodo e estamos excluindo.TOPO:= TOPO.PROX;

Passo 4: Libera o nodo onde estava o Orlando. Note como demonstra a fecha onde est o topo, como finalizou a figura.lib P;

Y ? PILHA-Pesquisa

P:= TOPO;enquanto TOPO # L e TOPO.INFO # Y faa TOPO:= TOPO.PROX;fim enquanto;se TOPO # L ento SUCESSO; seno FRACASSO;fim se;TOPO:=P;

Observe a tela abaixo. Indica a tela inicial antes que o algoritmo se inicie.

Passo 1: Aloca o nodo topo da pilha.P:= TOPO;

Passo 2: Enquanto ainda existir pilha e o Topo dela for diferente da varivel Y.TOPO # L ou TOPO.INFO # YO topo ir receber o prximo nodo da pilha.TOPO:= TOPO.PROX;

A condio do enquanto ainda no foi satisfeita; no pilha vazia; nem o topo Paulo igual varivel Y = Rogerio.

Observe que a condio do enquanto foi satisfeita, pois o topo da pilha, neste momento, Rogerio Assim, com a varivel Y, o lao interrompido neste ponto.

Passo 3: Se aps terminado o loop (condio enquanto) a pilha ainda no estiver vazia, ento houve Sucesso, ou seja, encontrou o Rogerio na pilha.TOPO # L

Passo 4: Topo recebe P, onde P Orlando, ltimo nodo da pilha, cuja finalidade recomear o algoritmo. E toda pesquisa deve iniciar pelo topo.TOPO:=P;

XY?PILHA - Pesquisa e Alterao

Segue algoritmo abaixo como modelo de pesquisa e alterao. P:= COMEO; enquanto COMEO # L e COMEO.INFO # Y faa COMEO:= COMEO.PROX; fim enquanto; se COMEO # L ento COMEO.INFO := X; SUCESSO; seno FRACASSO; fim se; COMEO:=P;