·

Ciência da Computação ·

Estrutura de Dados

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta
Equipe Meu Guru

Prefere sua atividade resolvida por um tutor especialista?

  • Receba resolvida até o seu prazo
  • Converse com o tutor pelo chat
  • Garantia de 7 dias contra erros

Texto de pré-visualização

15 Faculdade de Computação e Informática Ciência da Computação Estrutura de Dados I 3ª etapa 20222 Professor André Kishimoto Atividade Lab2b TAD Lista circular duplamente ligadaencadeada A atividade deve ser realizada em dupla Com base no conteúdo apresentado em aula e em pesquisas adicionais realizadas pela dupla 1 Escreva a sua própria implementação do TAD Lista circular duplamente ligadaencadeada considerando os itens e operações a seguir 2 Defina um novo tipo de dado para um nó da lista que deve armazenar um número inteiro id e uma string name use o conceito de struct ou class 3 Defina um novo tipo de dado para a lista use o conceito de struct ou class 4 As operações que manipulam a lista são as mesmas da atividade Lab2a Create Destroy Insert Append RemoveHead RemoveTail RemoveNode GetHead GetTail GetNode Count IsEmpty Clear com as devidas adaptações para uma lista circular duplamente ligada e com os dados do nó da lista 5 Além da implementação do TAD Lista circular duplamente ligadaencadeada use o trecho de código da próxima página como sua maincpp com as devidas adaptações de acordo com sua implementação para testar a implementação da lista 6 Você deve alterar parte do código da maincpp substituindo todas as linhas contendo comentários TODO a fazer pelas instruções corretas seguindo a sua implementação da lista Atentese para a saída esperada do programa 7 A solução deve ser implementada em linguagem C e não em linguagem C Também não deve usar estruturas de dados da STL 8 Inclua a identificação da dupla nome completo e TIA de cada pessoa no início de cada arquivo de código como comentário 9 Inclua como comentário no código que possui a main as referências livros artigos sites entre outros consultadas para solucionar a atividade 10 Cada pessoa deve realizar uma autoavaliação dessa atividade e incluir sua nota como comentário no código que possui a main 11 Tente sempre trabalhar com arquivos hcpp modularizando o código 25 No trecho de código a seguir assumese que existem dois novos tipos de dado struct LinkedList e struct Node ambas declaradas em LinkedListh maincpp TODO Inserir sua identificação aqui assim como autoavaliação e referências include iostream include LinkedListh using namespace std void Printconst LinkedList list TODO Percorrer todos os nós da lista do início ao fim e imprimir as informações de cada nó veja a saída de exemplo no enunciado void PrintReverseconst LinkedList list TODO Percorrer todos os nós da lista em ordem inversa do fim ao início e imprimir as informações de cada nó veja a saída de exemplo no enunciado void PrintDoubleListInfoconst LinkedList list if IsEmptylist cout Lista vazia else Printlist PrintReverselist int main cout Lista Circular Duplamente LigadaEncadeada Doubly Circular Linked List LinkedList list Create PrintDoubleListInfolist Insertlist 1 Carol Insertlist 2 Eric Insertlist 3 John Appendlist 4 Leo Appendlist 5 Julia Appendlist 6 Lisa PrintDoubleListInfolist Clearlist PrintDoubleListInfolist Insertlist 11 Paulo Appendlist 22 Thomas Insertlist 33 Olga 35 Appendlist 44 Bia Insertlist 55 Angela Appendlist 66 Karen Insertlist 77 Adauto PrintDoubleListInfolist Node temp RemoveNodelist 44 cout Nó removido id tempid name tempname TODO Liberar memória alocada para o nó que foi removido PrintDoubleListInfolist temp RemoveHeadlist cout Nó removido id tempid name tempname TODO Liberar memória alocada para o nó que foi removido PrintDoubleListInfolist temp RemoveTaillist cout Nó removido id tempid name tempname TODO Liberar memória alocada para o nó que foi removido PrintDoubleListInfolist TODO Obter o primeiro nó da lista e mostrar a mensagem apropriada de acordo com o resultado obtido TODO Obter o último nó da lista e mostrar a mensagem apropriada de acordo com o resultado obtido TODO Obter o nó com id 77 e mostrar a mensagem apropriada de acordo com o resultado obtido TODO Liberar memória alocada para a lista cout Fim O código deve gerar a seguinte saída Lista Circular Duplamente LigadaEncadeada Doubly Circular Linked List Lista vazia Lista com 6 elementos 3 John 2 Eric 1 Carol 4 Leo 5 Julia 6 Lisa Lista com 6 elementos ordem invertida 6 Lisa 5 Julia 4 Leo 1 Carol 2 Eric 3 John Lista vazia Lista com 7 elementos 77 Adauto 55 Angela 33 Olga 11 Paulo 22 Thomas 44 Bia 66 Karen 45 Lista com 7 elementos invertida 66 Karen 44 Bia 22 Thomas 11 Paulo 33 Olga 55 Angela 77 Adauto Nó removido id 44 name Bia Lista com 6 elementos 77 Adauto 55 Angela 33 Olga 11 Paulo 22 Thomas 66 Karen Lista com 6 elementos invertida 66 Karen 22 Thomas 11 Paulo 33 Olga 55 Angela 77 Adauto Nó removido id 77 name Adauto Lista com 5 elementos 55 Angela 33 Olga 11 Paulo 22 Thomas 66 Karen Lista com 5 elementos invertida 66 Karen 22 Thomas 11 Paulo 33 Olga 55 Angela Nó removido id 66 name Karen Lista com 4 elementos 55 Angela 33 Olga 11 Paulo 22 Thomas Lista com 4 elementos invertida 22 Thomas 11 Paulo 33 Olga 55 Angela Aqui vai uma mensagem definida pela dupla para o TODO Obter o primeiro nó Aqui vai uma mensagem definida pela dupla para o TODO Obter o último nó Aqui vai uma mensagem definida pela dupla para o TODO Obter o nó com id 77 Fim Entrega Uma pessoa da dupla deve entregar o códigofonte somente arquivos h e cpp compactado no formato zip via link disponível no Moodle Atenção O arquivo zip não deve conter arquivos intermediários eou pastas geradas pelo compilador ex pasta bin e obj arquivos o etc Prazo de entrega via link do Moodle até 20112022 2359 55 Critérios de avaliação A nota da atividade é calculada de acordo com os critérios da tabela a seguir Item avaliado Pontuação máxima Implementação das funções Create Destroy Clear Insert Append RemoveHead RemoveTail RemoveNode até 10 ponto cada Implementação das funções GetHead GetTail GetNode Count IsEmpty até 025 ponto cada Implementação da função main até 05 ponto Autoavaliação individual até 025 ponto Tabela 1 Critérios de avaliação A tabela a seguir contém critérios de avaliação que podem reduzir a nota final da atividade Item indesejável Redução de nota O projeto é cópia de outro projeto Projeto é zerado O projeto usa estruturas de dados da STL Projeto é zerado Há erros de compilação eou o programa trava durante a execução1 50 da nota Há memory leaks no projeto 20 pontos O código usa funcionalidades da linguagem C que existem em C por exemplo printf scanf 20 pontos Não há identificação da dupla 10 ponto Não há indicação de referências 10 ponto Arquivos enviados em formatos incorretos 10 ponto Arquivos eou pastas intermediárias que são criadas no processo de compilação foram enviadas junto com o códigofonte 10 ponto Tabela 2 Critérios de avaliação redução de nota O códigofonte será compilado com o compilador g GCC 920 na plataforma Windows da seguinte forma g cpp pedantic stdc11 Werrorvla Wall o programaexe 1 Sobre erros de compilação considere apenas erros Não há problema se o projeto tiver warnings embora warnings podem avisar sobre possíveis travamentos em tempo de execução como loop infinito divisão por zero etc