UNIVERSIDADE FEDERAL DE UBERLÂNDIA
Faculdade de Engenharia Elétrica

Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902
Telefone: (34) 3239-4701/4702 - www.feelt.ufu.br - feelt@ufu.br
  

Timbre

Plano de Ensino

IDENTIFICAÇÃO

Componente Curricular:

  Tópicos Especiais em Engenharia de Computação: Estrutura de Dados

Unidade Ofertante:

FEELT

Código:

 
FEELT39040D

Período/Série:

Turma:

C

Carga Horária:

Natureza:

Teórica:

03

Prática:

00

Total:

03

Obrigatória:

( )

Optativa:

(X)

Professor(A):

EDGARD AFONSO LAMOUNIER JÚNIOR

Ano/Semestre:

2022/2

Observações:

 

 

EMENTA

Ao final do curso o estudante deverá ser capaz de modelar problemas e implementar aplicativos computacionais relacionados à Engenharia de Computação, utilizando os conceitos de abstração de dados e as estruturas de dados clássicas: pilhas, filas, listas, árvores e grafos.

JUSTIFICATIVA

  A disciplina de estrutura de dados é fundamental para um curso de graduação em Engenharia da Computação. Estruturas de dados para o Engenheiro da Computação são como a régua de desenho para o Engenheiro Civil: ferramenta básica de trabalho. Isto porque se trata de diferentes maneiras de representar, armazenar e manipular dados no computador. Cada estrutura tem seu potencial de aplicação que, por sua vez, está intimamente relacionado com os tipos de funcionalidades requeridas por um sistema computacional. Diante deste cenário, é de extrema importância que o egresso de um curso de Engenharia da Computação esteja habilitado a trabalhar com diferentes estruturas de dados.

OBJETIVO

Objetivo Geral:

Identificar e implementar as principais estruturas de dados

Objetivos Específicos:

  • Conceituar e implementar pilhas e seus principais algoritmos.
  • Conceituar e implementar filas e seus principais algoritmos.
  • Conceituar e implementar listas e seus principais algoritmos.
  • Conceituar e implementar árvores e seus principais algoritmos.
  • Conceituar e implementar grafos e seus principais algoritmos.

PROGRAMA

  

 

  1. Introdução
    1. Definição
    2. Tipos clássicos de estruturas de dados
    3. Aplicações de estruturas de dados
  2. Pilhas
    1. Definição e exemplos
    2. Representação de pilha
    3. Implementação de pilhas usando variáveis dinâmicas
    4. Uso de pilhas na avaliação de expressões numéricas e funções
  3. Recursividade
    1. Definição de processos recursivos
    2. Escrevendo programas recursivos
    3. Simulando recursividade
  4. Listas e filas
    1. Definição
    2. Representação de filas
    3. Listas encadeadas
    4. Implementação de pilhas e de fila usando listas
    5. Implementação de listas duplamente encadeadas usando memória dinâmica
    6. Lista circular duplamente encadeadas
  5. Árvores
    1. Árvores binárias
    2. Representação de árvores binárias como listas
    3. Aplicações de árvores
    4. Algoritmos de busca em árvores
    5. Árvores genéricas
    6. Uso de árvores para criação e modelagem de componentes elétricos e eletrônicos

 

 

  1. Grafos
    1. Definição de grafos, dígrafos e redes
    2. Aplicação de grafos
    3. Representação de grafos como listas
    4. Algoritmo de menor caminho
    5. Representação de grafos encadeados
    6. Uso de grafos na representação de relacionamento de cargas e conduites em instalações elétricas
    7. Complexidade de algoritmos

METODOLOGIA

- Aulas expositivas utilizando recursos áudio visuais e quadro negro.

- Aulas práticas com um aluno por computador no desenvolvimento de programas computacionais.

AVALIAÇÃO

2 provas de 30,0 pontos e uma trabalho de 40. Será aplicada prova de recuperação. 

BIBLIOGRAFIA

Básica

  1. GUIMARÃES, Angelo de Moura e LAGES, Newton Alberto de Castilho; Algoritmos e estruturas de dados, 8ª. Edição, LTC, 2008.
  2. PREISS, Bruno R.; Estruturas de dados e algoritmos: padrões de projetos orientados a objetos com Java, Rio de Janeiro, Elsevier, 2001.
  3. CORMEN, Thomas H.; RIVEST, Ronald l.; LEISERSON, Charles E. e STEIN, Cliford. Algoritmos: teoria e prática. Rio de Janeiro: Campus, 2012. 926 p., il. Inclui bibliografia e índice. ISBN 9788535236996 (broch.).

Complementar

  1. AHO, Alfred V. e HOPCROFT, John E.;,Data structures and algorithms, Addison-Wesley, 1983.
  2. TENENBAUM, Aaron M e LANGSAM, Yedidyah; Estruturas de dados usando C, São Paulo, Makron Books, 1995.
  3. ASCENCIO, Ana Fernanda Gomes. Estruturas de dados: algoritmos, análise da complexidade e implementações em Java e C/C++. São Paulo: Pearson, c2011. 432 p., il. Inclui bibliografia e índice. ISBN 9788576058816 (broch.).
  4. DROSDEK, Adam; Data Structures and Algorithms in C++ - 4th edition; Cengage Learning; 2013.
  5. GOODRICH, Michael T.; TAMASSIA, Roberto and MOUNT, David M.; Data Structures and Algorithms in C++ - 2nd edition; John Wiley & Sons, 2011.

APROVAÇÃO

Aprovado em reunião do Colegiado realizada em: ____/____/______

Coordenação do Curso de Graduação: _________________________

 


logotipo

Documento assinado eletronicamente por Edgard Afonso Lamounier Junior, Professor(a) do Magistério Superior, em 16/02/2023, às 14:38, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 4273128 e o código CRC 4F13170C.




Referência: Processo nº 23117.002527/2023-61 SEI nº 4273128