Reviso IF 672 Algoritmos e Estruturas de Dados

  • Slides: 7
Download presentation
Revisão IF 672 - Algoritmos e Estruturas de Dados CIn - UFPE Allan Jefferson

Revisão IF 672 - Algoritmos e Estruturas de Dados CIn - UFPE Allan Jefferson Silva de Souza Artur Lira dos Santos Diêgo João Costa Santiago Diego Lemos de Almeida Melo Eliaquim Lima Sá Neto Jerônimo Barbosa da Costa Júnior Lucas Silva Figueiredo Pablo Carvalho Pinheiro Tiago Lins Falcão Vinicius Alexandre Kursancew {ajss, als 3, djcs, dlam, elsn, jbcj, lsf, pcp, tlf, vak}@cin. ufpe. br © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados

Índice 1. Elabore um algoritmo que dada uma fila, retorne como saída essa fila

Índice 1. Elabore um algoritmo que dada uma fila, retorne como saída essa fila com a ordem invertida. 2. Elabore um algoritmo que dada uma árvore, retorne uma fila dos elementos de um determinado nível k. 3. Elabore um algoritmo que dada uma árvore retorne se ela é uma árvore AVL. Obs 1. : Cada elemento só pode ser visitado apenas uma vez; Obs 2. : Cada nó aponta apenas para seus filhos; Obs 3. : Inicialmente o balance e a altura de cada nó(elemento) é 0 4. Elabore o algoritmo que dada uma árvore retorne uma lista ordenada. © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados

1. Elabore um algoritmo que dada uma fila, retorne como saída essa fila com

1. Elabore um algoritmo que dada uma fila, retorne como saída essa fila com a ordem invertida. ALGORITMO INVERTE_FILA ENTRADAS = fila : Fila SAÍDAS = fila : Fila VARIÁVEIS = aux. Pilha : Pilha, aux. Element : Elemento ENQUANTO fila não estiver vazia FAÇA aux. Element : = remover (fila) inserir (aux. Pilha, aux. Element) FIM-ENQUANTO aux. Pilha não estiver vazia FAÇA aux. Element : = remover (aux. Pilha) inserir (fila, aux. Element) FIM-ENQUANTO FIM-ALGORITMO © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados

2. Elabore um algoritmo que dada uma árvore, retorne uma fila dos elementos de

2. Elabore um algoritmo que dada uma árvore, retorne uma fila dos elementos de um determinado nível k. ALGORITMO NIVEL ENTRADAS = arvore : Arvore, k : Inteiro SAÍDAS = lista : Lista VARIÁVEIS = aux. Lista : Lista inserir (aux. Lista, raiz(arvore)) lista : = NIVEL_AUX (aux. Lista, k, 0) FIM-ALGORITMO © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados

2. Elabore um algoritmo que dada uma árvore, retorne uma fila dos elementos de

2. Elabore um algoritmo que dada uma árvore, retorne uma fila dos elementos de um determinado nível k. ALGORITMO NIVEL_AUX ENTRADAS = in. Lista : Lista, k : Inteiro, atual. K : Inteiro SAÍDAS = out. Lista : Lista VARIÁVEIS = aux. Lista : Lista SE k = atual. K ENTÃO out. Lista : = in. Lista SENÃO aux. Element : = head (in. Lista) ENQUANTO aux. Element ≠ NIL FAÇA inserir (aux. Lista, esquerda(element)) inserir (aux. Lista, direita(element)) aux. Element = prox(aux. Element) FIM-ENQUANTO out. Lista = NIVEL_AUX (aux. Lista, k, atual. K+1) FIM-SE FIM-ALGORITMO © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados

3. Elabore um algoritmo que dada uma árvore retorne se ela é uma árvore

3. Elabore um algoritmo que dada uma árvore retorne se ela é uma árvore AVL. ALGORITMO AVL ENTRADAS = arvore : Arvore SAÍDAS = avl : Booleano avl : = AVL_AUX (raiz(arvore)) FIM-ALGORITMO AVL_AUX ENTRADAS = element : Elemento SAÍDAS = avl : Booleano avl : = AVL_AUX (esquerda(element)) E AVL_AUX (direita(element)) E absoluto(altura(direita(element))-altura(esquerda(element)))≼ 1 set. Balance (element, altura(direita(element))altura(esquerda(element))) set. Altura (element, maximo(altura(esquerda(element)), altura(direita(element)))+1) FIM-ALGORITMO © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados

4. Elabore o algoritmo que dada uma árvore retorne uma lista ordenada. ALGORITMO IN-ORDEM

4. Elabore o algoritmo que dada uma árvore retorne uma lista ordenada. ALGORITMO IN-ORDEM ENTRADAS = arvore : Arvore SAÍDAS = fila : Fila fila : = IN-ORDEM_AUX(raiz(arvore), fila) FIM-ALGORITMO IN-ORDEM_AUX ENTRADAS = element : Elemento, fila : Fila SAÍDAS = fila : Fila SE element ≠ NIL ENTÃO fila : = IN-ORDEM_AUX(esquerda(element), fila) inserir (fila, element) fila : = IN-ORDEM_AUX(direita(element), fila) FIM-SE FIM-ALGORITMO © Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados